2017-02-19 5 views
1

Я с трудом раз выяснить, как сделать сценарий обновления в Play 2 JavaPlay 2 Java - проверить форму с помощью заполнения и bindFromRequest в сценарии обновления

У меня есть
User.java модель

public class User { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    public Long id; 

    @Constraints.Required 
    public String email; 

    @Constraints.Required 
    public String fullname; 
} 

И я хочу, чтобы обновить его, так что в моем контроллере я

public Result update(Long id) { 
    ObjectNode result = Json.newObject(); 

    User employee = userService.get(id); 

    Form<User> userForm = formFactory.form(User.class).fill(employee); 

    // This won't trigger validation because it uses fill() not bind() 
    if (userForm.hasError()) { 
     result.set("message", userForm.errorsAsJson()); 

     return badRequest(result); 
    } 

    // do update here 
} 

Тогда я пытаюсь какой-то другой подход, как этот

public Result update(Long id) { 
    ObjectNode result = Json.newObject(); 

    User employee = userService.get(id); 

    Form<User> userForm = formFactory.form(User.class).fill(employee); 
    userForm = userForm.bindFromRequest(); 

    // This will trigger validation but bindFromRequest will override my fill(employee) before. 
    if (userForm.hasError()) { 
     result.set("message", userForm.errorsAsJson()); 

     return badRequest(result); 
    } 

    // do update here 
} 

bindFromRequest() выше переопределит мой fill(employee). Я не хочу этого делать, потому что когда в моем запросе я просто хочу заполнить fullname, а не мой email, мое свойство email вызовет его необходимую проверку.

Так что мой вопрос в том, как я могу только обновить свой атрибут fullname с формой, которую я заполняю, используя существующее значение и все еще вызывая ограничения проверки из моей модели?

+0

Привет, не могли бы вы его решить? – jschnasse

ответ

0

Изменение userForm = userForm.bindFromRequest(); в userForm.bindFromRequest();

Я работаю код очень похож на ваш, и это единственное различие я наблюдал.

Смежные вопросы