gpt4 book ai didi

javascript - Grails - 在 GSP 中渲染变量值时避免转换

转载 作者:行者123 更新时间:2023-11-28 13:34:29 25 4
gpt4 key购买 nike

我正在将较旧的 Grails 应用程序移植到新版本 (2.3.7),但遇到了一个错误,我不知道如何修复...这里有人有任何想法吗?

在其中一个网页上,我有一个半大型的 JavaScript 计算金额。该网站是多语言的,因此金额的计算和格式取决于国家/地区。代码看起来像这样:

<script type="text/javascript">
<!--

... a lot of other javascript

// format an amount to display - country dependant

function formatAmount (amount) {
${country.javaScriptAmount}
}

... a lot of other javascript

//-->
</script>

格式化金额的代码位于每个国家/地区常量变量“country”中 - 它是一个常量字符串(并声明为“final”)。在旧的 grails 版本中,这工作得很好,渲染的页面如下所示:

// format an amount to display - country dependant

function formatAmount (amount) {

... other code

var krString
if (kkr > 0)
if (kronor < 10)
krString = kkr + " 00" + kronor
else if (kronor < 100)
krString = kkr + " 0" + kronor
else
krString = kkr + " " + kronor
else
krString = kronor.toString ()

... other code

}

但在新版本中它看起来像这样:

function formatAmount (amount) {

... other code

var krString
if (kkr &gt; 0)
if (kronor &lt; 10)
krString = kkr + &quot; 00&quot; + kronor
else if (kronor &lt; 100)
krString = kkr + &quot; 0&quot; + kronor
else
krString = kkr + &quot; &quot; + kronor
else
krString = kronor.toString ()

... other code

}

在渲染 GSP 文件中变量的值时,如何阻止 grails 将/"转换为 >/

来自瑞典的安德斯

最佳答案

防止Cross Site Scripting grails 转义 ${} 表达式中的所有内容。

您可以使用 raw 编解码器强制 grails 停止对表达式进行编码,如下所示:

${raw(country.javaScriptAmount)}

<g:encodeAs codec="Raw">
${country.javaScriptAmount}
</g:encodeAs>

${country.javaScriptAmount.encodeAsRaw()}

关于javascript - Grails - 在 GSP 中渲染变量值时避免转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22476480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com