使用BindingResult在JSP上显示错误消息

时间:2014-11-04 04:00:45

标签: java javascript jsp spring-mvc

我是Spring的新手。 我试图通过使用BindingResult在jsp上显示错误用户和密码的错误消息。但是没有显示错误消息。

请在下面的代码中告诉我错误。

JSP

<script type="text/javascript">      
    function loginUser() {              
        $('#loginForm').submit();    
    }

</script>

</head>

<body>
    <form:form action="login.test" id="loginForm" commandName="loginForm" method="POST">
    <div class="brand_area"></div>
        <div class="content_area">          
            <table style="top: 360px; position: relative; margin-left: 333px;">
                <tr id="uNameID">
                    <td class="label">User Name:</td>
                    <td><form:input id="userNameID" path="userName" class="textInput" /></td>
                    <td><form:errors path="userName" class="error"/></td>
                </tr>
                <tr id="pID">
                    <td class="label">Password:</td>
                    <td><form:password id="passwordID" path="password" class="textInput" /></td>
                    <td><form:errors path="password" class="error"/></td>
                </tr>
                <tr>
                    <td></td>
                    <td><span id="saveButton" class="loginButton"
                        onclick="loginUser()"> <span>Login</span>
                    </span></td>
                </tr>
            </table>
        </div>
    </form:form>

控制器

@RequestMapping(value = "login.test", method = RequestMethod.POST)
public String processForm( LoginForm loginForm, BindingResult result, ModelMap model, HttpSession session) throws SQLException {

    String resultedPage;

    model.addAttribute("l_nodes", reportService.getAllLiveNodes());
    model.addAttribute("s_nodes", reportService.getAllStaticReportNodes());

    User user = userService.getUserByName( loginForm.getUserName() );

    if( user != null ){
        session.setAttribute("userID", user.getUserID());
        if( loginForm.getPassword().equals( user.getPassword() ) ){


            resultedPage = "home/userHome";

        }else{
            result.rejectValue( "password", "login.passwordNotValid");
            resultedPage = "redirect:login.test";
        }
    }else{
        result.rejectValue( "userName", "login.userNotValid");
        resultedPage = "redirect:login.test";
    }

    return resultedPage;
}

由于

2 个答案:

答案 0 :(得分:0)

好吧,我通常使用Model对象发回值。

这可能是answer可能对您有所帮助。

答案 1 :(得分:0)

如果其他人重新使用相同的...
将hasBindErrors标记添加到JSP:

        <spring:hasBindErrors name="loginForm">
                <c:forEach var="error" items="${errors.allErrors}">
                <b><spring:message message="${error}" /></b>
                <br/>
                </c:forEach>
         </spring:hasBindErrors>