我想在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。