在JSF输入页面中支持Hibernate验证

在多层企业级应用中,Web框架和ORM持久层框架通常会有不同的数据验证机制。Web框架在Web表单被提交时验证用户输入,而持久层框架在保存数据进数据库之前验证数据。在大多数情况下,它们显得多余。
Seam允许你在实体Beans中直接注解数据验证约束,这样使用与实体Beans相联系的JSF输入框时,同样的验证约束将应用于输入数据。
下面的例子中,Person对象的名字必须由两个单词组成,并且年龄必须在3到100岁之间。
@Entity
@Name(”person”)
@Table(name=”extperson”)
public class Person implements Serializable {
private long id;
private String name;
private int age;
@Id @GeneratedValue
public long getId() { return id;}
public void setId(long id) { this.id = id; }
@NotNull
@Pattern(regex=”^[a-zA-Z.-]+ [a-zA-Z.-]+”,
message=”Need a firstname and a lastname”)
public String getName() { return name; }
public void setName(String name) {this.name = name;}
@NotNull
@Range(min=3, max=100,
message=”Age must be between 3 and 100″)
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
}
下面的JSF页面将自动”包装”一些验证逻辑。如果用户提交无效值,将重新显示页面,同时高亮显示无效的字段。
<s:validateAll>
Your name:<br/>
<s:decorate>
<h:inputText value=”#{person.name}”/>
</s:decorate>
Your age:<br/>
<s:decorate>
<h:inputText value=”#{person.age}”/>
</s:decorate>
</s:validateAll>
你可以通过简单的JSF facets和CSS样式配置这些高亮显示的错误信息。也可以在无效字段前加入有CSS样式修饰的错误提示图片。如下所示,当验证失败时,<s:message/>将显示验证注解中的信息属性。
<f:facet name=”beforeInvalidField”>
<h:graphicImage styleClass=”errorImg” value=”error.png”/>
</f:facet>
<f:facet name=”afterInvalidField”>
<s:message styleClass=”errorMsg” />
</f:facet>
<f:facet name=”aroundInvalidField”>
<s:div styleClass=”error”/>
</f:facet>
使用基于Ajax的JSF控件,你无需提交任何表单,就可以进行输入字段的验证。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值