3

我是 grails 的新手,并试图在 gsp 上的 g:set 标记中设置 messages.property (i18n) 的值,然后在同一个 gsp 页面上的 java 脚本中使用它。例如:

我的 messages.property 应该如下所示: operation.hello=Hello '{0}'

在普惠制中应该有:

<g:set var="foo" value="${operation.hello('Patty')}" scope="page"/>

<g:javascript>
  alert( $foo )
</g:javascript>

不知道如何处理。有人可以帮忙吗?

我们的基本意图是使用来自 javascript 的 parametrized-messages.property 值。

尝试了 JAWR 插件,效果很好,但 JAWR 存在我们不希望出现的其他问题

4

3 回答 3

3

只要您了解所有这些都是在服务器端处理的,我认为您需要做的就是使用正确的语法:

<g:set var="foo" value="${g.message(code: 'operation.hello', args: ['Patty'])}" scope="page"/>

<g:javascript>
  alert( "${foo}" );
</g:javascript>

当它到达浏览器时,它应该只是读取:

<script type="text/javascript">
  alert( "Hello Patty" );
</script>
于 2012-08-22T22:46:35.583 回答
1

这回答了你的问题了吗?

<script type="text/javascript">
     var helloTo = "Patty";
     var message = "${g.message(code: 'operation.hello', args: ["+ helloTo + "])}";
</script>
于 2012-08-23T15:27:59.430 回答
1

如果我明白你的意思,基本上你不能。

G 标签是服务器端的东西。在呈现 g 标签时,它们的值 args 必须存在,您不能将 javascript(客户端)值传递给 g 标签(基本上它是一个服务器端代码段)。您可以将 ag 标记的结果放入 javascript 字符串中,而不是相反。

于 2012-08-23T10:15:32.473 回答