将Xml响应存储在字符串中,我想将其显示在gsp页面的textarea中
String responseXml = ""<Cars>
<Car>benz</Car>
<Car>audi</Car>
<Car>bmw</Car>
</Cars>""
在gsp页面中
<g:textArea name="xml" value="${responseXml}" rows="20" cols="100"/>
将textarea中的响应作为单行xml标记获取,如此
<Cars><Car>benz</Car><Car>audi</Car><Car>bmw</Car></Cars>
但我想要的是在textarea中显示xml标签,就像这样
<Cars>
<Car>benz</Car>
<Car>audi</Car>
<Car>bmw</Car>
</Cars>
答案 0 :(得分:1)
我为此创建了一个taglib,因为我在muitiple的地方遇到了这个问题:
/**
* Preserves line breaks and spaces of the supplied value when displaying as html.
* @param value - The value to preserve linebreaks of.
*/
def preserveFormat ={ attrs, body ->
def value = attrs.value
out << value.encodeAsHTML().replace('\n', '<br/>\n').replace(' ',' ').replace('\t',' ')
}
/**
* Displays xml content in a pretty formatted way and preserves formatting in html view.
*/
def displayXml={attrs, body ->
def xml = attrs.xml
assert xml
def prettyXml = groovy.xml.XmlUtil.serialize(xml)
out << preserveFormat(value:prettyXml)
}
我根据下面评论中的建议,使用额外的taglib更新了我的回复,该taglib也以非常方式格式化xml。