3
我注意到使用g.message
标记解析Grails消息时出现了一些奇怪的行为。如果我解决这个与用参数解析消息
deleted={0} has been deleted
:在我的属性文件中,我定义这个消息
Long id = 1878L
message(code: 'festival.deleted', args: [id.toString()])
结果是:
1878年已被删除
这是我所期望的。但是,如果我解决这个问题:
Long id = 1878L
message(code: 'festival.deleted', args: [id])
结果是:
1,878之前已被删除
这不是很清楚,我为什么编号的格式为“1,878”它被代入消息。我想也许是toString()
呼吁所有消息的参数,如果他们不是已经String
型的,但是这似乎并没有解释这种行为,因为
id.toString() == "1878"
我不知道,你可以包括在参数占位符的格式化信息,谢谢! –
你忘了在这里提到'Locale'的重要性。 'NumberFormat.getInstance()'使用默认的语言环境。英国和美国的数字格式相同(1,878)。将语言环境更改为法语(在taglib中),您会看到数字格式的差异。所以,它是驱动格式的区域,不仅仅是'NumberFormat'。 @多纳尔 – dmahapatro