grails - 阻止Grails停止HTML编码消息?

标签 grails

注意:从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/

相关文章:

grails - 如何与Wslite Soap API一起使用Nil

grails - Grails 域类中的字符串列表

grails - 通过具有部分下载支持的 Controller 提供文件

grails - Grails批处理作业

unit-testing - grails/groovy:单元测试时如何访问保存的域对象?

grails - 循环使用GSP grails

grails - grails ListView 查看行的奇/偶类名

jquery - 在 jquery 中克隆后,Bootstrap datepicker 不显示日历

grails - 在grails条件下显示 View 中的消息

grails - Grails:如何在位于 Controller /域/服务之外的GSP页面中获取语言环境?