JSF Bean 验证

2024 年 8 月 29 日 | 阅读 3 分钟

JSF 以注解的形式为 Bean 模型提供验证约束。 您可以将这些注解放在 JavaBeans 组件的字段、方法或类上,例如托管 Bean。

JSF 还提供创建自定义或用户定义约束的功能。 内置约束位于 javax.validation.constraints 包中,并在下表中列出。

内置 Bean 验证约束

限制条件描述示例
@NotNull它用于将非空约束设置到字段或属性的值。@NotNull String username;
@Null它用于将空约束设置到字段或属性的值。@Null String unusedString;
@Size它用于指定字段或属性的大小。 评估字段或属性的大小,并且必须与指定的边界匹配。 使用可选的 max 或 min 元素之一来指定边界。@Size(min=2, max=240) String briefMessage;
@Digits它用于设置约束,即字段或属性的值必须是指定范围内的数字。 integer 元素指定数字的最大整数位数,fraction 元素指定数字的最大小数位数。@Digits(integer=6, fraction=2) BigDecimal price;
@DecimalMin此约束指定字段或属性的值必须是大于或等于 value 元素中数字的十进制值。@DecimalMin("5.00") BigDecimal discount;
@DecimalMax它用于指定字段或属性的值必须是小于或等于 value 元素中数字的十进制值。@DecimalMax("30.00") BigDecimal discount;
@Max它用于设置字段或属性的值,该值必须是小于或等于 value 元素中数字的整数值。@Max(10) int quantity;
@Min它用于设置字段或属性的值,该值必须是大于或等于 value 元素中数字的整数值。@Min(5) int quantity;
@Pattern它用于设置必须与 regexp 元素中定义的正则表达式匹配的模式。@Pattern(regexp="\\(\\d{3}\\)\\d{3}-\\d{4}") String phoneNumber;
@Past它用于设置字段或属性的值,该值必须是过去的日期。@Past Date birthday;
@Future它用于设置字段或属性的值,该值必须是未来的日期。@Future Date eventDate;
@AssertTrue它用于设置字段或属性的值,该值必须为 true。@AssertTrue boolean isActive;
@AssertFalse它用于设置字段或属性的值,该值必须为 false。@AssertFalse boolean isUnsupported;

JSF Bean 验证示例

// index.xhtml

// User.java

将以下代码放在您的 web.xml 文件中。 它用于告诉 JSF 必须将空值视为空。

// web.xml

输出

JSF Bean validation 1