2014-02-20 66 views
0

我使用gsp模板渲染XML,一切正常,但自闭标签被转换为空标签。例如,如果我的模板具有以下标签:将gsp变换自关闭标签渲染为空标签

<Custom:tag /> 

,当我在控制器上渲染:

String xml = g.render template:template, model: model 

xml变量的值是

<Custom:tag></Custom:tag> 

它仍然是一个有效的XML,但是当我尝试发送到无法控制的服务器时,由于Custom:tag,我得到验证错误。

如何防止Grails解析这个标签?

+0

的Grails有一个良好的API来渲染XML,所以模板是不最好的方式来做到这一点。你有没有[尝试过](http://grails.org/doc/latest/ref/Controllers/render.html)? –

+1

你应该真的使用supercool groovy xml构建器,你在做什么是一个混乱 –

+0

我考虑使用模板,因为我想支持许多XML,但[Groovy XML Builder](http://groovy.codehaus.org/Creating+XML+使用+ Groovy's + MarkupBuilder)绝对是最好的选择。 –

回答

1

在这里你有一个简单的例子,你怎么能轻易呈现XML

def renderXml() { 

     render(contentType: 'text/xml') { 
      startTag(version: '1.2', state:'FeelGood') { 
       childTag(value:"this is a value") 
       nestingFun(howmuchisthefish:"42"){ 
        childTag(value:"this is a value") 
        childTag(value:"this is a value") 
       } 

      } 
     } 

    } 

这将导致类似的东西像

<?xml version="1.0" encoding="UTF-8"?> 

<startTag version="1.2" state="feelGood"> 
     <childTag>"this is a value"</childTag> 
     <nestingFun howmuchisthefish="42" > 
      <childTag>"this is a value"</childTag> 
      <childTag>"this is a value"</childTag> 
     </nestingFun> 
</startTag> 
+0

感谢您的评论!我无法呈现自封闭的标签,但在阅读您的评论后,我得到了答案:selfClosedTag() – Vladimir