在Visual Web JSF应用程序中转换和验证数据 - 编程入门网
d2_validate(FacesContext context, UIComponent component, Object value) {
String s = String.valueOf(value);
if (!s.matches("\\d\\d\\d")){
throw new ValidatorException(new FacesMessage("Not a three-digit number."));
}
}
String s 上的 matches 方法使用正则表达式来指定 String 可接受的合法值。\d 匹配数字(0-9)。 字符串字面中的“\”对 Java 解析器有特殊含义。您指定一个额外的“\”来转义第二个“\”,确保它不被更改地通过解析器传给模式解释器。所以表达式 \d\d\d 匹配任何从 000 到 999 的三位数。 如果字符串不匹配该正则表达式,一个消息就被传递到 ValidatorException 构造方法。该消息被队列到 FacesMessage 上,并在渲染响应过程中显示到页面上。 右键单击 Java 编辑器,选择“修复导入”。在“修复所有导入”对话框中,单击“确定”。IDE 将导入 javax.faces.validator.ValidatorException 和 javax.faces.application.FacesMessage 包。 运行应用程序。输入各种长度的数字和字符串来测试应用程序。还要在文本字段没有输入值时,核实显示了标准验证错误。 下图显示了当您输入一个四位数时的结果。 图 12:定制验证器示例和结果 做更多:定制标准验证器消息 标准验证失败时,您可以覆盖 NetBeans IDE 提供的内建错误消息。您将为项目创建一个提供定制消息的资源包。注意这是全局覆盖而非组件级覆盖。这意味着需要它的所有组件都返回相同值。 定制消息 本节说明如何为 JSF 1.1 / J2EE 1.4 中的长型、双精度范围和长型范围验证器定制消息。正如你看到的,这将是比在 JSF 1.2 中添加定制消息稍长的过程。您使用 IDE 来为必需的输入定制缺省错误消息。首先您创建一个资源包,程序用其中的键来映射向用户显示的字符串,然后您将编辑 faces-config.xml 来指向 MyResources.properties 资源包。 注意:本节中的步骤依赖于叫做 ValidatorConverter 的项目。如果您选择不同的名称,请调整所有项目名称的使用来反映您的项目的名称。 在“项目”窗口中,右键单击“ValidatorsConverter”,选择“新建”>“其他”。 在“新建文件”向导中,在“类别”字段中选择“其他”,并在“文件类型”字段中选择“属性”文件,单击“下一步”。 在“文件名称”字段中输入“MyResources”,在“文件夹”字段中输入“src\java\validatorconverter”,单击“完成”。 IDE 将创建资源包,并在 IDE 中打开 MyResources.properties 文件。MyResources.properties 文件为组件使用的消息提供替换文本。 关闭 MyResources.properties 文件。 在“文件”窗口中,展开“ValidatorConverter”>“src”>“java”>“validatorconverter”右键单击 MyResources.properties,选择“打开”以打开键-值属性编辑器。 在键-值属性编辑器中,您可以向资源包添加键-值对。 单击“新建属性”。 在Visual Web JSF应用程序中转换和验证数据(10)时间:2011-07-06 netbeans2.org在“新建属性”对话框中,在“键”字段中键入“javax.faces.component.UIInput.REQUIRED”。在“值”字段中键入“Please enter a value and then press Enter.”。 重要:请确保键的末尾没有空格。空格将在运行时阻止程序运作。 要了解用于标准 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |