2016-08-23 4 views
0

하나의 형식으로 사용하려는 두 개의 객체를 래핑했습니다. 여기에 래퍼 클래스는 다음과 같습니다스프링 형태의 래퍼 유효성 확인

public class UserCustomer { 
    User user; 
    Customer customer; 
    //Getters and setters 
    //Constructors 

컨트롤러 :

@Controller 
public class RegisterController { 
    @RequestMapping("/register") 
    public String showRegister(Model model){ 
     model.addAttribute("userCustomer", new UserCustomer(new User(), new Customer())); 
     return "register"; 
    } 

    @RequestMapping(value="/doRegister", method = RequestMethod.POST) 
    public String doRegister(Model model, @Valid UserCustomer userCustomer, BindingResult bindingResult){ 
     if(bindingResult.hasErrors()){ 
      return "register"; 
     } 
     System.out.println(userCustomer.getUser()); 
     return "registered"; 
    } 
} 

그리고 형태 :

 <h3 class="new-models">For New Customers</h3> 
     <div class="register"> 
      <sf:form method="post" action="${pageContext.request.contextPath}/doRegister" commandName="userCustomer"> 
       <div class="register-top-grid"> 
        <h3>PERSONAL INFORMATION</h3> 
        <div> 
         <span>First Name<label>*</label></span> 
         <sf:errors path="customer.name" cssClass="alert-danger"/> 
         <sf:input name="name" type="text" path="customer.name"/> 
        </div> 
        <div> 
         <span>Last Name<label>*</label></span> 
         <sf:errors path="customer.surname" cssClass="alert-danger"/> 
         <sf:input name="surname" type="text" path="customer.surname"/> 
        </div> 
        <div> 
         <span>Email Address<label>*</label></span> 
         <sf:errors path="user.email" cssClass="alert-danger"/> 
         <sf:input name="email" type="text" path="user.email"/> 
        </div> 
        <div> 
         <span>Username<label>*</label></span> 
         <sf:errors path="user.username" cssClass="alert-danger"/> 
         <sf:input name="username" type="text" path="user.username"/> 
        </div> 
        <div class="clearfix"> </div> 
        <!--a class="news-letter" href="#"> 
         <label class="sf:checkbox"> 
          <!--sf:input type="checkbox" name="newsletter" path="customer.newsletter" checked=""/><i> </i>Sign Up for Newsletter</label> 
        </a--> 
        <a class="news-letter" href="#"></a> 
       </div> 
       <div class="register-bottom-grid"> 
        <h3>LOGIN INFORMATION</h3> 
        <div> 
         <span>Password<label>*</label></span> 
         <sf:errors path="user.password" cssClass="alert-danger"/> 
         <sf:input name="password" type="password" path="user.password"/> 
        </div> 
        <div> 
         <span>Confirm Password<label>*</label></span> 
         <sf:input type="password" path=""/> 
        </div> 
       </div> 
       <div class="clearfix"> </div> 
       <div class="register-but"> 
        <input type="submit" value="register"> 
        <div class="clearfix"> </div> 
       </div> 
      </sf:form> 
     </div> 

모든 유효성 검사를 제외하고, 잘 동작하는 것. 이 래퍼에서 유효성 검사를 수행하는 방법을 알지 못합니다. 사용자 클래스의 이메일

예 검증 : 나 자신에게이 문제를 해결 한

@Pattern(regexp = ".*\\@.*\\..*") 

답변

0

, 그것은 내가이 될 것으로 예상 것보다 방법이 더 간단합니다.

유효성 검사는이 래퍼의 사용자 및 고객 필드 위에 @Valid 주석을 추가하여 작동하므로 스프링이 실제로 "더 깊게"유효성을 확인할 수 있습니다.