Grails messages.properties的参数出现问题,除零以外的所有数字都能正常工作
在我的Grails 2.4.4应用程序中,我使用messages.properties进行国际化,其值如下:Grails messages.properties的参数出现问题,除零以外的所有数字都能正常工作,grails,groovy,gsp,Grails,Groovy,Gsp,在我的Grails 2.4.4应用程序中,我使用messages.properties进行国际化,其值如下: my.app.thing.allowance(s)={0} Allowance(s) 它正在普惠制中使用,例如: <g:message code="my.app.thing.allowance(s)" args="${item.allowances.size()}"/> 我已经调试过了,我确信item.amounts.size==0,但由于某些原因,它无法正确处理0的值。
my.app.thing.allowance(s)={0} Allowance(s)
它正在普惠制中使用,例如:
<g:message code="my.app.thing.allowance(s)" args="${item.allowances.size()}"/>
我已经调试过了,我确信item.amounts.size==0,但由于某些原因,它无法正确处理0的值。向消息传递int值为0的参数的正确方法是什么?属性?在g中。消息参数始终作为列表传递
发件人:
args optional-使用代码时应用于消息的参数值列表
请尝试以下代码:
<g:message code="my.app.thing.allowance(s)" args="[item.allowances.size()]"/>
巴拉特的回答是正确的,但我想补充一下为什么会这样: 您已通过args=0 下面是消息标记库中的代码:
List args = []
if (attrs.args) {
args = attrs.encodeAs ? attrs.args as List : encodeArgsIfRequired(attrs.args)
}
在groovy中,0为false,这就是为什么在0的情况下没有填写消息
List args = []
if (attrs.args) {
args = attrs.encodeAs ? attrs.args as List : encodeArgsIfRequired(attrs.args)
}