Grails 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的值。

在我的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的值。向消息传递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)
   }