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