Grails查看编解码器不工作(2.4)

时间:2014-06-03 20:11:40

标签: javascript grails gsp

我正在尝试在包含&符号的gsp中添加一个字符串,但是我需要&符号,而不是html-ized版本,因为它会被注入一些javascript。这是我试过的......

  1. grails docs表示grails.views.default.codec的默认值为“none”。那是错的。这是“html”。
  2. 我可以通过使用jsp样式的标签来获取grails以避免字符串,即:<%=mySafeHTMLString%> Nope。
  3. 我可以通过再次使用<%@page defaultCodec="none" %> Nope来获取grails不使用每页的默认代码。
  4. 简而言之,grails docs似乎从一开始就是错误的,然后功能似乎在这一切都被打破了。还有什么我可以尝试的吗?

    我正在使用grails 2.4。

1 个答案:

答案 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