2012-04-27 18 views
3

我的問題與Custom validation message for bean validation基本相同。但是,我無法解決問題。如何爲JSR 303 bean驗證提供已翻譯的自定義錯誤消息?

bean類:

public class PersonalInfoBean { 
    @Size(min=5, max=55, message="{invalid_name}") 
    String name; 
    ... 
} 

我在Eclipse項目的src文件夾中的包創建Messages.properties。

invalid_name=Please enter a valid name 

我註冊faces-config.xml中的文件:

<application> 
    <message-bundle>com.webage.survey.Messages</message-bundle> 
</application> 

的facelet裏文件有:

<h:inputText value="#{personalInfo.name}" id="name"/> <h:message for="name" style="color: red" /><br/> 

當我提交表單,我看到的只是{} invalid_name作爲錯誤信息,而不是「請輸入有效的名稱」。

我用JBoss 6和WebSphere 8測試了這個結果。

回答

4

您在混合JSR 303 Bean Validation framework與JSF內置驗證。 JSR 303 Bean驗證框架不是JSF框架的一部分。這是JSF恰好具有集成支持的完全獨立的驗證框架。

你需要指定不同性質的JSR 303 Bean驗證郵件文件,而不是ValidationMessages.properties確切文件名,可以用ValidationMessages_xx_XX.properties文件進行本地化。這些文件必須放置在類路徑的根目錄中。

您無需註冊faces-config.xml。該<message-bundle>僅用於JSF內置轉換器和驗證,如required="true"<f:validateRegex><f:convertDateTime>

+0

它的工作!我必須將ValidationMessages.properties放在默認(根)包中。 – RajV 2012-04-27 20:14:05