2013-08-14 7 views
9

Я пытаюсь сделать свой шаблон из TagLib:Grails: Rendering шаблон из TagLib, как HTML

out << g.render(template: "/menu/sidebar") 

Это то, что мой шаблон боковой панели выглядит следующим образом:

<ul> 
    <li>TEST1</li> 
    <li>TEST2</li> 
</ul> 

Когда я осмотреть мою страницу в браузере, весь код шаблона появляется в апострофы, как это ...

"<ul> 
    <li>TEST1</li> 
    <li>TEST2</li> 
</ul>" 

... и печатает мой HTML-код так же, как пла в текст. Любая идея, как заставить его распознавать содержимое как правильный html-код?

Edit: библиотеки тегов Код:

class MenuTagLib { 
    static defaultEncodeAs = 'html' 
    def renderIfExists = { attrs,body-> 
     GrailsConventionGroovyPageLocator groovyPageLocator 
     println attrs.template 
     if(groovyPageLocator.findTemplateByPath(attrs.template)) 
     { 
      g.render(template:attrs.template) 
     } 
     else{ 


      out << g.render(template: "/menu/sidebar") 
     } 
    } 
} 

Путь назвать это:

<g:renderIfExists template="/${params.controller}/sidebar" plugin="untitled1" /> 
+0

AFAIK, 'вне << визуализации (template: "/ menu/sidebar") 'должен это сделать ... –

+0

Это делает его одинаковым – Saraph

+0

Можете ли вы разместить свой код taglib и способ его вызова? –

ответ

22

Если бы я должен был догадаться, это будет то, что у вас есть это в вашем классе:

static defaultEncodeAs = 'html'

Вы должны удалите эту строку и повторите попытку. Это говорит о том, что он должен избегать html-символов.

8

Библиотеки тегов по умолчанию соответствуют содержимому тега кодирования как HTML по Grails 2.3. Это может быть отключена путем добавления

static defaultEncodeAs = "raw" 

Это позволит быть тег Lib выход сырой HTML, а не как строки

1

Try с:

static defaultEncodeAs = [taglib:'text'] 
+2

Пожалуйста, если вы хотите получить больше очков, вы должны объяснить свой ответ. Ваш ответ может решить проблему, но не дать информацию о том, что было не так, и что было не так. –

Смежные вопросы