2011-10-01 36 views
0

我在message.properties中添加了条目以显示可完全工作的自定义错误消息,例如,grails message.properties - 如何调试

address.street1.blank=Please provide a street address or P.O. Box 

我有所有的突然无法一类的重命名后,发现其他条目,如:

billingshipping.creditCardNumber.blank=Please provide a credit card number 

以前的定制消息重构前工作正常/重命名类“加入”到“BillingShipping”,当错误属性被称为:

join.creditCardNumber.blank=Please provide a credit card number 

我做了一个干净,我还可以重命名上面的“地址”错误属性为“地址”,并重新保存message.prope rties文件,果然我得到了默认的grails错误,而不是自定义消息。将其重新更改为“地址”,然后收到自定义消息,指示文件正在按预期使用。

在这种情况下,我如何进一步调试,找出有什么问题?

谢谢

P.S.请注意,这些错误消息用于使用相同的控制器以相同的格式显示。

回答

2

你有一个错字。

这个班被称为“BillingShipping”,而关键是“billingshipping”。 请注意航运中“s”的大小写。

+0

非常感谢你,这解决了这个问题。你知道为什么价值“BillingShipping”不起作用(我曾尝试过)?根据grails文档,这是一个grails错误:“无论是否有包,都会查找类名,并且打包版本优先。”它没有提到对大写的类名使用前导小写字母。 – Ray

+0

我只能在这里猜测,但我会假设有一个约定,总是用小写字母开始键。如果你检查验证器的文档,你会看到这样的:“类名查找有和没有包,包装版本优先,例如,com.mycompany.myapp.User.login.blank将在user.login.blank之前使用,这允许您的域类遇到与插件冲突的消息代码。“所以,如果你指定完整的包名称,类名突然以通常的形式... –

+0

我看到Eike,谢谢你指出这一点 - 包装盒/外壳。我发现这些属性文件(例如http://stackoverflow.com/questions/7419036/grails-i18n-error-customization-various-inconsistencies)的各种问题(看似bug),所以我必须写一个正式的错误。再次感谢。 – Ray