我试图从taglib渲染我的模板:
- out << g.render(template: "/menu/sidebar")
这是我的侧边栏模板的样子:
- <ul>
- <li>TEST1</li>
- <li>TEST2</li>
- </ul>
当我在浏览器中检查我的页面时,整个模板代码会显示在这样的撇号中
- "<ul>
- <li>TEST1</li>
- <li>TEST2</li>
- </ul>"
…并打印我的HTML代码就像一个纯文本.任何想法如何使它将内容识别为正确的HTML代码?
编辑:Taglib代码:
- 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" />
解决方法
如果我不得不猜测,那就是你在课堂上有这样的事情:
static defaultEncodeAs =’html’
您应该删除该行,然后重试.这表示它应该转义html字符.