ber*_*tie 2 jsf jpa bean-validation jsf-2 jpa-2.0
让我们从一个例子开始:
在我的JPA实体中
public class User {
@Pattern("^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$", message="invalidEmailResourceBundleKey")
private String email;
@Min(5, message="minimumResourceBundleKey")
private int age;
...
}
Run Code Online (Sandbox Code Playgroud)
在我的JSF Bean中
public class UserBean {
private User user;
// do i have to redefine it here, since it's already a part of the user ?
@@Pattern("^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$")
public String getEmail() {
return user.getEmail();
}
public void setEmail(String s) {
user.setEmail(s);
}
// do i have to redefine it here, since it's already a part of the user ?
@Min(5, message="minimumResourceBundleKey")
public int getAge() {
return user.getAge();
}
public void setAge(int age) {
user.setAge(age);
}
}
Run Code Online (Sandbox Code Playgroud)
是否有可能为实际将方法调用委托给实体的JSF bean重用实体的验证,这样我就不必重新定义JSF bean上的bean验证?
我是否可以将重用扩展到资源包中的错误消息级别,以及消息是否可以像{0}一样参数化?我想知道网上有没有这方面的例子,因为我一直都找不到.
请分享您对此的看法..
谢谢 !
如果不必要地平整bean属性,则无需重新定义它们.只需要一个getUser()代替.
public class UserManager {
private User user;
public User getUser() {
return user;
}
}
Run Code Online (Sandbox Code Playgroud)
并直接绑定到JPA实体的属性.
<h:inputText value="#{userManager.user.email}" />
<h:inputText value="#{userManager.user.age}" />
Run Code Online (Sandbox Code Playgroud)
与具体问题无关,您的电子邮件正则表达式将无法用于去年推出的国际化域名(IDN).我修正了正则表达式,不仅接受拉丁字符.有关示例,请参阅此答案.
| 归档时间: |
|
| 查看次数: |
2852 次 |
| 最近记录: |