grails中的自定义标记库未正确传递HTML标记

Ted*_*ene 4 grails taglib

我正在使用grails 2的权威指南(使用grails 2.3.7)学习grails,当我查看自定义标记库时,它给出了一个示例自定义标记,如下所示:

    def repeat = { attrs, body ->
        int n = attrs.int('times)
        n?.times { counter ->
              out << body(counter +1)
        }
    }
Run Code Online (Sandbox Code Playgroud)

所以当我像这样使用这个标签时:

   <g:repeat times="3">
      Hello number ${it}<br>
   </g:repeat>
Run Code Online (Sandbox Code Playgroud)

我期望在我呈现的HTML上获得三个单独的行:

   Hello number 1
   Hello number 2     
   Hello number 3
Run Code Online (Sandbox Code Playgroud)

相反,我得到:

   hello number 1<br>hello number 2<br>hello number 3<br>
Run Code Online (Sandbox Code Playgroud)

我找到了看起来应该有帮助的方法,比如decodeHTML()但是我因此无法改变我想要的输出,而且我不确定我做错了什么.

我试过做:

   out <<body.decodeHTML()
Run Code Online (Sandbox Code Playgroud)

但我得到一个空指针错误...

Jef*_*own 9

除非你的taglib中有其他内容或GSP中有异常调用标记,否则这没有意义.

你的taglib可能有类似defaultEncodeAs ='html'的东西吗?