2011-06-26 140 views
0

我有一些問題,找出如何在春天驗證3. 我有什麼到目前爲止,這是Java Bean的....彈簧3驗證方法不驗證

public class User { 

@NotEmpty 
@Size(min=2, max=40) 
private String name=""; 

@Email 
private String email=""; 

public String getName(){ 
    return name; 
} 

public String getEmail(){ 
    return email; 
} 

public void setName(String name){ 

    this.name=name; 
} 

public void setEmail(String email){ 

    this.email=email; 
} 

}

這是鏈接到包含窗體頁面的方法:

@RequestMapping(value="/form", method=RequestMethod.GET) 
public String form(Model model){ 


    model.addAttribute("user",new User()); 
    return "form"; 
} 

而且這是在我的控制器,該方法,「應該」驗證

@RequestMapping(value="/displayUser",method=RequestMethod.POST) 
public String displayUser(Model model,@Valid User user,BindingResult result){ 


    if(result.hasErrors()){ 
     return "form"; 
    } 
    userList.add(user); 
    model.addAttribute("user",user); 

    return "displayUser"; 
} 

@Validate註解應該進行驗證,但在我的情況下它不。

你在我的代碼中看到錯誤嗎?

通過這種方式的形式,我有「一切非常簡單,這只是用於測試目的

<f:form method="post" action="displayUser" commandName="user"> 
<table align="center" border="1"> 
    <tr> 
    <td>Your details</td> 
    </tr> 
    <tr> 
    <td><f:label path="name">Name:</f:label></td><td><f:input path="name" /></td><f:errors path="name"></f:errors> 
    </tr> 
    <tr> 
    <td><f:label path="email">Email:</f:label></td><td><f:input path="email" /></td><f:errors path="name"></f:errors> 
    </tr> 
    <tr> 
    <td><input type="submit" value="register" /></td> 
    </tr> 
</table> 
</f:form> 

任何建議?(我使用Java 5,那邊javax.validation.Validator ISN」牛逼可用)

+0

提示:這是不相關的驗證,但不是手動放置用戶的型號,您可以將@ModelAttribute註解的用戶參數,它會自動顯示在模型。 –

+0

嗨威利,問題是我不能使用@ModelAttribute(「用戶」)用戶用戶和@Valid用戶用戶,在方法簽名相同的參數列表中,ofyourse一個用戶變量允許它 – JBoy

回答

0

確保添加javax.validation的驗證,API和Hibernate驗證如果您使用maven的增加您的依賴關係如下:

  <dependency> 
        <groupId>javax.validation</groupId> 
        <artifactId>validation-api</artifactId> 
        <version>1.0.0.GA</version> 
      </dependency> 


      <dependency> 
        <groupId>org.hibernate</groupId> 
        <artifactId>hibernate-validator</artifactId> 
        <version>4.0.2.GA</version> 
      </dependency> 

啓用春季註釋DRI VEN您的applicationContext

<mvc:annotation-driven /> 
+0

嗨gouki, thx的建議,Spring的註釋已經激活,我不使用Maven或螞蟻,你在上面提到的依賴關係已經在我的項目的類路徑中 – JBoy