簡體   English   中英

Play上validate()方法的特定行為! 構架

[英]Specific behaviour on validate() method on Play! Framework

我正在尋找對我的validate()方法有特定的行為(就像我可以在groups批注中使用的方法一樣),無論該方法是否被調用

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

或上

Form<User> registerForm = 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
    }
}

應用控制器

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();
}

group參數沒有傳遞給validate()方法,因此我認為這是不可能的。 它不那么方便,但是您可以自己調用validate (或其他驗證方法)。

用戶模型:

public class User extends Model
{
  public List<ValidationError> validate(Class group) {
    if (group == Login.class) {
      ...
    } else if (group == Register.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);
    ...
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM