注意:从Grails 1.3.6升级到2.2.2的过程中。
如果我有一个标签,例如:
<g:message code="some.code.here" args="${[someHTML]}" />
即使在Config.groovy中设置了以下内容,它也会将值编码为HTML:
grails.views.default.codec = "none"
这在Grails 1.3.6中不是问题。它对整个项目中的所有标签都执行此操作。这是通过这种方式传递链接所必需的,因为我们正在基于语言传递链接。
知道为什么即使在升级之前还是无法解决问题,但为什么仍然无法解决问题?
如果HTML位于.properties文件中,则可以正常显示。如果变量只是嵌入到页面中,则可以正常工作。将其作为参数传递给g:message的行为会导致其出错。我试图使用<%= someHTML%>的方式传递它,但似乎并不喜欢,告诉我我缺少引号。
最佳答案
g:message因XSS漏洞(GRAILS-7170)而更改。有关在某些情况下(例如您的用例)继续使用HTML参数的解决方法,请参见http://jira.grails.org/browse/GRAILS-10099。
关于grails - 阻止Grails停止HTML编码消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17174830/