目标:修改默认的错误消息
每种类型的验证错误所显示的错误信息是由Message.properties文件控制的,该文件位于jsf-impl.jar中的javax.faces包中。可以通过如下方式查看,展开Libraries > Sun Java System Application Server > jsf-impl.jar > javax.faces,然后双击Messages.properties。
你可以通过替换应用所使用的属性文件来创建自定义的消息。
1. 右键点击jAstrologer工程,然后选择New > File/Folder。在Other分类中选择Properties File,然后点击Next。把文件命名为MyMessages,输入文件夹位置:src/java/astrologer/ui,然后点击Finish。MyMessages.properties文件显示在源代码编辑区。在Files窗口,展开文件夹src/java/astrologer/ui来查看文件。
2. 把下面的属性从Messages.properties拷贝到MyMessages.properties中:
javax.faces.component.UIInput.REQUIRED={0}: Validation Error: Value is required.
javax.faces.converter.DateTimeConverter.DATE={2}: ''{0}'' could not be understood as a date.
javax.faces.converter.DateTimeConverter.DATE_detail={2}: ''{0}'' could not be understood as a date. Example: {1}
3. 修改属性的值:
javax.faces.component.UIInput.REQUIRED=Please enter a value for this field.
javax.faces.converter.DateTimeConverter.DATE=Please enter a valid date.
javax.faces.converter.DateTimeConverter.DATE_detail=Please enter a valid date. Example: {1}
4. 打开faces-config.xml (在Projects窗口的Configuration Files节点下),并在faces-config主元素下输入下面的内容:
...
<application>
<message-bundle>astrologer.ui.MyMessages</message-bundle>
</application>
</faces-config>
5. 右键点击应用,然后选择Run Project。如果你在必填域中不输入任何信息或者在生日输入框中输入了不正确的日期格式,应用将显示下面的错误信息。

注意:那些在自定义属性文件中没有指定的信息将从jsf-impl.jar中的Messages.properties中获取。同样,您可以为错误信息指定一个CSS样式,然后通过如下方式在message标记中指定该样式。
<h:message for="birthday" style="color:#369;" /></p>
该部分内容可以参考书上175页。
书:《Java EE 5实用教程》