Spring MVC: проверка @RequestParam - PullRequest
1 голос
/ 04 апреля 2011

В моей регистрационной форме я использую Bean Validator (JSR-303) для проверки User объекта, и мне нужно отдельно подтверждать подтверждение пароля, потому что он не является членом User. У меня проблема с назначением сообщения об ошибке для поля confirm. Как это сделать?

Вид:

<form:form modelAttribute="user" method="post" action="register.html">
        <div class="fcell">
            <div class="clabel"><spring:message code="label.password"/></div>
            <div class="cdata"><form:password path="password"/></div>
            <div class="cmsgs"><form:errors path="password" /></div>
        </div>
        <div class="fcell">
            <div class="clabel"><spring:message code="label.confirm"/></div>
            <div class="cdata"><input type="password" name="confirm"/></div>
            <div class="cmsgs"></div>
        </div>
</form:form>

Контроллер:

@RequestMapping("/register.html")
public String register(@RequestParam("confirm") String confirm, @ModelAttribute("user") @Valid User user, BindingResult result) {
    if(!DigestUtils.sha256Hex(confirm).equals(user.getPassword())) {
           /* Invalid property 'confirm' ... */                   
           result.rejectValue("confirm", "text.passwords_not_equal");
    }
    return "register";
}

1 Ответ

2 голосов
/ 04 апреля 2011

В этом случае подтверждение можно считать частью объекта модели, например:

public class RegistrationForm {
    @Valid
    private User user;
    private String confirm;
    ...
}

...

public String register(@ModelAttribute("user") @Valid RegistrationForm user,
   BindingResult result) { ... }   

... 

<div class="cdata">
    <form:password path="confirm"/></div>
    <div class="cmsgs"><form:errors path="confirm" />
</div>  
... 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...