在Grails中,有两种(主要)方法将国际化字符串插入gsp:
<g:message code="your.code.here" />
和
${message(code:'your.code.here')}
我认为我曾经在一段时间看到,当在HTML代码中间时,建议使用上面的第一个
<h1><g:message code="title.header.text" /></h1>
,建议使用上面的第二个代码(使用引号),如
var messageToDisplay = "${message(code:'your.code.here')}";
然而,我也见过人们
<h1>${message(code:'title.header.text')}</h1>
下面的最后一行是否也可以在Grails中接受/推荐? 是否有理由做/不做上面的最后一个选项?
(编辑在下面添加)
关于编码的另一个问题: 在HTML的中间,(有时)需要做
<h1><g:message code="title.header.text" encodeAs="HTML"/></h1>
在JavaScript中间
var messageToDisplay = "${message(code:'your.code.here').encodeAsJavaScript()}";
那有区别吗?可以将默认编码更改为标记的HTML和$ {message(code)}的JavaScript吗?
答案 0 :(得分:2)
它们都完全有效。这一切都取决于背景和风格。大多数人喜欢在可能的情况下使用标签。它们最终都使用相同的标记库/代码。
当您需要解析控制器,其他标记库或服务中的消息时,message(code:)
格式特别有用。
答案 1 :(得分:0)
标签和scriptlet在下面是相同的,但我更喜欢在网页中尽可能使用标签,因为它们更适合HTML标记的其余部分,并且更容易阅读。