Java 域对象验证与播放!框架
我想验证一个没有自动参数绑定的域对象,以限制客户端可以设置的属性 下面的类(来自的示例) 。。。通常是这样验证的Java 域对象验证与播放!框架,java,validation,playframework,Java,Validation,Playframework,我想验证一个没有自动参数绑定的域对象,以限制客户端可以设置的属性 下面的类(来自的示例) 。。。通常是这样验证的 public static void hello(@Valid User user) { if(validation.hasErrors()) { params.flash(); validation.keep(); index(); } render(user); } 但是在这个场景中,user的所有字段都可以由客户端设
public static void hello(@Valid User user) {
if(validation.hasErrors()) {
params.flash();
validation.keep();
index();
}
render(user);
}
但是在这个场景中,user
的所有字段都可以由客户端设置
是否可以通过Play触发域对象验证(而不是“控制器验证”)!1.2明确
public static void hello(long id, String name) {
User user = User.findById(id);
user.name = name;
user.validate(); // <-- I miss something like this
if(validation.hasErrors()) {
params.flash();
validation.keep();
index();
}
render(user);
}
publicstaticvoidhello(长id,字符串名){
User=User.findById(id);
user.name=名称;
user.validate();//您可以将@Required添加到name参数中,并将代码转换为:
public static void hello(long id, @Required String name) {
if(validation.hasErrors()) {
params.flash();
validation.keep();
index();
}
User user = User.findById(id);
user.name = name;
render(user);
}
出于i18n的目的,您可以将注释扩展到@Required(message=“key.to.i18n.message”)。您尝试过吗
validation.valid(user);
如果“验证”根本不在某个操作中,它没有实例化呢?不管怎样,找到它了:验证对象创建者受到保护,但有一个“.current()”。。。
validation.valid(user);