Grails视图编解码器不工作(2.4)

Grails View Codec Not Working (2.4)

本文关键字:工作 视图 编解码器 Grails      更新时间:2023-09-26

我试图把一个字符串在我的gsp中包含一个&符号,但我需要&符号的原样,而不是html化的版本,因为它被注入到一些javascript。这是我尝试过的…

  1. grails文档说grails.views.default.codec的默认值是"none"。这是错误的。它是"html"
  2. 我可以通过使用jsp风格的标签让grails不转义字符串,例如:<%=mySafeHTMLString%> no .
  3. 我可以通过使用<%@page defaultCodec="none" %>让grails不使用每页默认代码。

简而言之,grails文档似乎一开始就错了,然后功能似乎又坏了。还有什么我可以试试的吗?

自Grails 2.3以来,所有${}表达式的输出都会在gsp上自动转义。这非常有用,因为用户输入现在被转义了,输入值中的任何HTML或JavaScript都被转义了,而不是被浏览器解释为HTML或JavaScript。这样做是为了保护我们的Grails应用程序免受跨站脚本攻击。

但是,如果您需要原始值,您总是可以使用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