在 javascript 中使用 "<g:message tag



我想在javascript中使用以下标签来读取资源键值。

var myText = "<g:message code='${steps[i].text}' />" ;

步骤[i] .TEXT不是静态的,并且不断更改,这就是为什么我需要将"步骤[i] .text"的值传递给ResourceBundle。

如果我使用,

var myText = "<g:message code='a.b.key' />" ;

然后它可以正常工作。但是对于下行,它给出以下错误:

var myText = "<g:message code='${steps[i].text}' />" ;
org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Error executing tag <g:render>: Error executing tag <r:script>: Error evaluating expression [steps[i].text] on line [393]: Cannot get property 'null' on null object

我的代码在.gsp文件中,能够读取资源捆绑包。

问题是,当您呈现GSP时,GSP时会在相应消息中转换G:消息,但是它不会在相应的信息中转换$ {step [i] .text}标签。

也许您可以使用消息标签的args解决问题:

.gsp

<g:message code='a.b.key' args="[i]" />

.messages.properties

a.b.key = whatever {0} means

也许这可能对您有用:

var myText = "${g.message(code:steps[i].text)}";

我在这里假设"步骤"是服务器端变量,而不是JavaScript。

最新更新