Forms 播放时validate()方法的特定行为!框架

Forms 播放时validate()方法的特定行为!框架,forms,playframework-2.0,validationerror,Forms,Playframework 2.0,Validationerror,我希望在我的validate()方法上有特定的行为(就像我可以在groups注释中使用的那样),如果它被调用的话 Form<User> loginForm = form(User.class, User.Login.class).bindFromRequest();` Form loginForm=Form(User.class,User.Login.class).bindFromRequest();` 或者 formregisterform=Form(User.class,U

我希望在我的validate()方法上有特定的行为(就像我可以在groups注释中使用的那样),如果它被调用的话

Form<User> loginForm = form(User.class, User.Login.class).bindFromRequest();` 
Form loginForm=Form(User.class,User.Login.class).bindFromRequest();`
或者

formregisterform=Form(User.class,User.Register.class).bindFromRequest();
用户模型:

@Entity
public class User extends Model {

    public interface Register {}
    public interface Login{}        

    @Required(groups = {Register.class, Login.class})
    public String username;

    @Required(groups = {Register.class, Login.class})
    public String password;

    public List<ValidationError> validate() {       
       ... // Here I would like to distinguish User.Login.class from User.Register.class
    }
}
@实体
公共类用户扩展模型{
公共接口寄存器{}
公共接口登录{}
@必需(组={Register.class,Login.class})
公共字符串用户名;
@必需(组={Register.class,Login.class})
公共字符串密码;
公共列表验证(){
…//这里我想区分User.Login.class和User.Register.class
}
}
应用程序控制器

public static Result loginSubmit(){
    Form<User> loginForm = form(User.class, User.Login.class).bindFromRequest();
}

public static Result registerSubmit(){
    Form<User> registerForm = form(User.class, User.Register.class).bindFromRequest();
}
public静态结果登录提交(){
Form loginForm=Form(User.class,User.Login.class).bindFromRequest();
}
公共静态结果寄存器submit(){
Form registerForm=Form(User.class,User.Register.class).bindFromRequest();
}

组参数没有传递给
validate()
方法,因此我认为这是不可能的。这并不方便,但您可以自己调用
验证
(或其他验证方法)

用户模型:

public class User extends Model
{
  public List<ValidationError> validate(Class group) {
    if (group == Login.class) {
      ...
    } else if (group == Register.class) {
      ...
    }
  }
}
公共类用户扩展模型
{
公共列表验证(类组){
if(group==Login.class){
...
}else if(组==寄存器.class){
...
}
}
}
控制器:

public static Result loginSubmit(){
  Form<User> loginForm = form(User.class, User.Login.class).bindFromRequest();
  if (!loginForm.hasErrors()) {
    User user = loginForm.get();
    List<ValidationError> errors = user.validate(User.Login.class);
    ...
  }
}
public静态结果登录提交(){
Form loginForm=Form(User.class,User.Login.class).bindFromRequest();
如果(!loginForm.hasErrors()){
User=loginForm.get();
列表错误=user.validate(user.Login.class);
...
}
}
public static Result loginSubmit(){
  Form<User> loginForm = form(User.class, User.Login.class).bindFromRequest();
  if (!loginForm.hasErrors()) {
    User user = loginForm.get();
    List<ValidationError> errors = user.validate(User.Login.class);
    ...
  }
}