1

単純なログインのユースケースを使用して、Spring3.0でJSR303Bean検証を実現しようとしています。問題は、値を指定せずにフォームを送信すると、検証が行われないことです(つまり、BindingResultメソッドhasErrors()が常に「false」を返し、印刷するのはクールです!。コードスニペットは次のとおりです。

@Controller
public class AnnotatedController {
    @RequestMapping(value = "login")
    public String validateLogin(@Valid LoginForm loginForm, BindingResult result, HttpServletRequest request) {
        if(result.hasErrors())
            System.out.println("Got Errors !");
        else
            System.out.println("I'm cool !");
        return "login";
    }
}

Beanは次のようになります:

    public class LoginForm {
    @NotEmpty
    private String userName;
    @Size(min=2, max=3)
    private String password;

    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

最後に、ビュー:

<table>
    <form:form action="login.htm" modelAttribute="loginForm">
        <tr>
            <td>User :</td>
            <td><form:input path="userName" /></td>
        </tr>
        <tr>
            <td>Password :</td>
            <td><form:input path="password" /></td>
        </tr>
        <tr><td><input type="submit" value="Ok"> </tr>
    </form:form>
</table>

私は何が欠けていますか?

4

2 に答える 2

3

<mvc:annotation-driven/>サーブレット コンテキスト XMLを追加すると、問題が解決しました。

于 2013-02-27T03:27:01.273 に答える