我在gsp中有一个文本如下:
<g:message code="${code}" locale="${locale}"/>
问题是返回的消息可能包含&
等字符,并且在将此gsp导出为pdf时,会发生以下错误:
Caused by: org.xml.sax.SAXParseException; lineNumber: 396; columnNumber: 44; The entity name must immediately follow the '&' in the entity reference.
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
如果&
&
,则可以解决此问题
我尝试使用g:encodeAs
,但这没有用。我无法将messages.properties中的&
更改为&
或and
。
甚至可以在gsp?
中渲染之前替换从messages.properties返回的文本答案 0 :(得分:1)
我使用以下代码解决了问题:
${JsonUtil.parseTextForXhtml(message(code:code, locale: locale))}
然后在JsonUtil中,我将&
替换为&
,如下所示:
static String parseTextForXhtml(String text) {
text.replaceAll("&", "&")
}