【问题标题】:Spring MVC: @RequestParam validationSpring MVC:@RequestParam 验证
【发布时间】:2011-04-04 08:14:35
【问题描述】:

在我的注册表单中,我使用 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";
}

【问题讨论】:

    标签: validation spring-mvc


    【解决方案1】:

    在这种情况下,确认可以被视为模型对象的一部分,如下所示:

    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>  
    ... 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      • 2016-12-01
      • 2011-11-16
      • 2018-01-17
      相关资源
      最近更新 更多