2011-10-01 39 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