个性化阅读
专注于IT技术分析

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="#{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="#{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="#{user.mobile}"/>
<h:message for="mobile-id" style="color: red"/>
<br/>
<h:commandButton value="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验证1

赞(0)
未经允许不得转载:srcmini » JSF Bean验证

评论 抢沙发

评论前必须登录!