我正在尝试在包含&符号的gsp中添加一个字符串,但是我需要&符号,而不是html-ized版本,因为它会被注入一些javascript。这是我试过的......
<%=mySafeHTMLString%>
Nope。<%@page defaultCodec="none" %>
Nope来获取grails不使用每页的默认代码。简而言之,grails docs似乎从一开始就是错误的,然后功能似乎在这一切都被打破了。还有什么我可以尝试的吗?
我正在使用grails 2.4。
答案 0 :(得分:2)
自Grails 2.3以来,所有$ {}表达式输出都会在GSP上自动转义。这非常有用,因为用户输入现在已转义,输入值中的任何HTML或JavaScript都会被转义,并且不会被浏览器解释为HTML或JavaScript。这样做是为了防止我们的Grails应用程序受到跨站点脚本(XSS)攻击。
但是,如果您需要原始值,则可以始终使用raw()
或encodeAsRaw()
。如:
raw(somethingFromModel)
somethingFromModel.encodeAsRaw()
<g:encodeAs codec="None">${somethingFromModel}</g:encodeAs>
此外,您可以在Config.groovy中控制GSP的默认编码类型(如常用)
grails.views.default.codec = "none" // this will emulate pre-2.3 behavior