» 搜索提示 
 
定制标准验证器消息
2006 年 1 月 [修订号:V2-3]  
在标准验证失败时,Sun Java Studio Creator IDE 会提供内置的错误消息,您可以覆盖该消息。本教程使用 IDE 为必填的输入内容定制缺省错误消息。本教程还提供了为长度验证器、双精度范围验证器和长整型范围验证器定制消息的信息。
 
目录
 
设计应用程序
创建资源包
编辑 faces-config 文件
测试应用程序
执行更多操作:标准消息的键
[spacer] 此页上的内容适用于 Sun Java Studio Creator 2
 

设计应用程序

 
  1. 创建一个新的 Web 应用程序项目,并将其命名为 CustomMessage

    本教程中的几个步骤均以名为 CustomMessage 的项目为例进行说明。如果选择其他名称,请调整该项目名称的所有使用实例以反映您所选的名称。图 1 显示了将在以下步骤中创建的页。

    图 1:页面布局
    图 1:页面布局
     
  2. 从组件面板的“基本”类别中,将一个“文本字段”组件拖放到页面上。

  3. 通过选中文本字段“属性”窗口中的 required 复选框,将该属性设置为 True。required 属性位于“属性”窗口中“数据”类别的下方。

  4. 将“按钮”组件放在“文本字段”组件的右侧。将其 text 属性更改为 Submit

  5. 将一个“消息”组件从组件面板的“基本”类别拖放到“文本字段”的下方。

  6. 按住 Ctrl+Shift 组合键,从“消息”组件拖动一条直线到“文本字段”组件。

    此时“消息”组件的文本变为 textField1 的消息摘要
 

创建资源包

 
资源包将程序所用的键映射到显示给用户的字符串。在这里,您将在应用程序的 Java 源代码目录中创建一个资源包。
  1. 在主菜单中,选择“文件”>“新建项”。

    将打开一个新建向导窗口,帮助您建立资源包 (.properties) 文件。

  2. 在“类别”字段中选择“Java 类”,在“文件类型”字段中选择“属性文件”,然后单击“下一步”。

  3. 在“文件名”字段中输入 MyResources

    MyResources.properties 文件将为组件所用的消息提供替换文本。

  4. 单击“浏览”。

  5. 在“浏览文件夹”对话框中,展开 "CustomMessage" > "src",然后选择 "custommessage"。

  6. 单击“选择文件夹”。

    projects-directory\CustomMessage\src\custommessage\MyResources.properties 会出现在“创建的文件”字段中。

  7. 单击“完成”。

    IDE 即会创建资源包。

  8. 在“文件”窗口中,打开 "CustomMessage" > "src" > "custommessage"。

  9. 右键单击 MyResources.properties,然后选择“打开”以打开键值属性编辑器,可以在该编辑器中将键值对添加到资源包中。

  10. 单击“新建属性”。

  11. 在“键”字段中键入 javax.faces.component.UIInput.REQUIRED

    注意:确保在键的结尾没有空格。空格会导致应用程序无法在运行时正常工作。

    有关标准消息的所有键的列表,请参见标准消息的键

  12. 在“值”字段中,键入 Please enter a value and then click the Submit button

  13. 单击“确定”。这些值便会显示在属性编辑器中,如图 2 所示。

    图 2:MyResources.properties 的属性编辑器
    图 2MyResources.properties 的属性编辑器
     

编辑 faces-config.xml 文件

 
现在,必须编辑 faces-config.xml 以指向 MyResources.properties 文件。
  1. 打开“文件”窗口,然后展开 "CustomMessage" > "web" > "WEB-INF"。双击 faces-config.xml。

    faces-config.xml 文件在可视设计器中被打开。

  2. 删除 <application></application> 标记周围的注释。

  3. 在 <application> 标记之后输入 <message-bundle> 标记(以粗体显示),代码如下所示:

    代码样例 1:faces-config.xml 文件
    <faces-config>
    <application> <message-bundle>custommessage.MyResources</message-bundle> <locale-config> <default-locale>en</default-locale> <supported-locale>de</supported-locale> <supported-locale>fr</supported-locale> <supported-locale>es</supported-locale> </locale-config> </application> </faces-config>
     
    message-bundle 元素表示一组本地化的消息。此元素包含一个全限定路径,该路径指向包含本地化消息的资源包(本例为 custommessage.MyResources)。请注意,资源包名称的第一部分 custommessage 是资源包文件的包名。其缺省名称为全小写的项目名称。

    locale-config 元素列出了缺省语言环境和其他支持的语言环境。通过 locale-config 元素,系统可以基于浏览器的语言设置来查找正确的语言环境。supported-localedefault-locale 标记接受 ISO-639 定义的两个小写字符代码。
 

测试应用程序

 
  1. 运行项目。

  2. 不在文本字段中输入值,直接单击 "Submit"。

    您定制的消息会出现在消息字段中,如下图所示。

    图 3:定制的验证器消息
    图 3:定制的验证器消息
     

执行更多操作:标准消息的键

 
在 Java Studio Creator IDE 中,可以使用资源包处理程序报告的消息,在请求的处理生命周期中,转换、验证或其他应用程序操作的结果将作为消息显示。下表列出了标准消息的键。
 
标准消息的键
描述
javax.faces.component.UIInput.CONVERSION
出现转换错误
javax.faces.component.UIInput.REQUIRED
值是必需的
javax.faces.component.UISelectOne.INVALID
值不是有效选项
javax.faces.component.UISelectMany.INVALID
值不是有效选项
javax.faces.validator.NOT_IN_RANGE
指定的属性不是介于预期的 {0} 和 {1} 值之间
javax.faces.validator.DoubleRangeValidator.MAXIMUM
值大于最大的许可值 {0}
javax.faces.validator.DoubleRangeValidator.MINIMUM
值小于最小的许可值 {0}
javax.faces.validator.DoubleRangeValidator.TYPE
值的类型不正确
javax.faces.validator.LengthValidator.MAXIMUM
值大于最大的许可值 {0}
javax.faces.validator.LengthValidator.MINIMUM
值小于最小的许可值 {0}
javax.faces.validator.LongRangeValidator.MAXIMUM
值大于最大的许可值 {0}
javax.faces.validator.LongRangeValidator.MINIMUM
值小于最小的许可值 {0}
javax.faces.validator.LongRangeValidator.TYPE
值的类型不正确
 

小结

 
下面是一个定制标准消息步骤的小结:
  1. 在应用程序的 Java 源代码目录中创建“键/值”资源包。

  2. 在资源包中,添加要覆盖的标准消息键以及定制消息。

  3. 编辑 WEB-INF 下的 faces-config.xml 文件,添加标记以指向资源包。
 
另请参见
 
此页的最新修改时间:2006 年 1 月 25 日