JSF Bean验证

JSF以注释的形式为bean模型提供了验证约束。你可以将这些注释放在JavaBeans组件(例如托管Bean)的字段, 方法或类上。
JSF还提供了创建自定义或用户定义的约束的工具。内置约束在javax.validation.constraints包中可用, 并在下表中列出。
内置Bean验证约束

约束 描述
@NotNull 它用于将非null约束设置为字段或属性的值。 @NotNull字符串用户名;
@Null 它用于将null约束设置为字段或属性的值。 @Null字符串usedString;
@Size 它用于指定字段或属性的大小。将评估字段或属性的大小, 并且必须匹配指定的边界。使用可选的max或min元素之一来指定边界。 @Size(min = 2, max = 240)字符串briefMessage;
@Digits 它用于设置约束, 即字段或属性的值必须是指定范围内的数字。整数元素指定该数字的最大整数位数, 而小数元素指定该数字的最大分数位数。 @Digits(整数= 6, 分数= 2)BigDecimal价格;
@DecimalMin 此约束指定该字段或属性的值必须是一个大于或等于value元素中数字的十进制值。 @DecimalMin(“ 5.00”)BigDecimal折扣;
@DecimalMax 它用于指定字段或属性的值必须是小于或等于value元素中数字的十进制值。 @DecimalMax(“ 30.00”)BigDecimal折扣;
@Max 它用于设置字段或属性的值, 该值必须是小于或等于value元素中数字的整数值。 @Max(10)整数数量;
@Min 它用于设置字段或属性的值, 该值必须是大于或等于value元素中数字的整数值。 @Min(5)int数量;
@Pattern 它用于设置必须与regexp元素中定义的正则表达式匹配的模式。 @Pattern(regexp =“ \\(\\ d {3} \\)\\ d {3}-\\ d {4}”)字符串phoneNumber;
@Past 它用于设置字段或属性的值, 该值必须是过去的日期。 @Past Date生日;
@Future 它用于设置字段或属性的值, 该值必须是将来的日期。 @未来日期eventDate;
@AssertTrue 它用于设置必须为true的字段或属性的值。 @AssertTrue布尔isActive;
@AssertFalse 它用于设置必须为false的字段或属性的值。 @AssertFalse布尔值isUnsupported;
JSF Bean验证示例
// index.xhtml
< h:form id="form"> < h:outputLabel for="username"> User Name< /h:outputLabel> < h:inputText id="name-id" value="http://www.srcmini.com/#{user.name}"/> < h:message for="name-id" style="color: red"/> < br/> < h:outputLabel for="age"> Enter Age< /h:outputLabel> < h:inputText id="age-id" value="http://www.srcmini.com/#{user.age}"/> < h:message for="age-id" style=" color: red"/> < br/> < h:outputLabel for="mobile"> Mobile No.< /h:outputLabel> < h:inputText id="mobile-id" value="http://www.srcmini.com/#{user.mobile}"/> < h:message for="mobile-id" style="color: red"/> < br/> < h:commandButton value="http://www.srcmini.com/OK" action="response.xhtml"> < /h:commandButton> < /h:form>

// User.java
import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import javax.validation.constraints.NotNull; import javax.validation.constraints.Min; import javax.validation.constraints.Size; @ManagedBean @RequestScoped public class User{ @NotNull(message = "Name can't be empty") String name; @Min(18) int age; @NotNull(message = "Mobile can't be empty") @Size(min = 10, max = 10, message = "Mobile must have 10 digits") String mobile; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } }

将以下代码放入你的web.xml文件中。它用于告知JSF空值必须视为null。
// web.xml
< context-param> < param-name> javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL < /param-name> < param-value> true< /param-value> < /context-param>

【JSF Bean验证】输出:
JSF Bean验证

文章图片

    推荐阅读