繁体   English   中英

Spring MVC错误验证错误

[英]Spring MVC error validation error

的index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<body>
<div align="center" style="margin-top:100px;">
    <font face="verdana" size="2">
        ${welcomeMessage} <BR><BR>
        ${result}
        <form:form action="${pageContext.request.contextPath}/login.html" method="POST" modelAttribute="loginForm">
            <table>
                <tr>
                    <td colspan="2" align="center">Spring MVC Form Demo - Login</td>
                </tr>
                <tr>
                    <td>User Name</td>
                    <td><form:input path="username" /> <form:errors path="username"></form:errors></td>                 
                </tr>
                <tr>
                    <td>Password</td>
                    <td><form:password path="password" /> <form:errors path="password"></form:errors></td>
                </tr>
                <tr>
                    <td colspan="2" align="center"><input type="submit" value="Login" style="background-color:white;" /></td>
                </tr>                                   
            </table>                                        
        </form:form>
        <a href="${pageContext.request.contextPath}/welcome">Register if not already registered</a>
    </font>
</div> 
</body>
</html>

HelloController.java

package java4s;


import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.context.annotation.Scope;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import java4s.model.Login;

@Controller
public class LoginSuccessController {

    @Autowired
    EmployeeService emp_service;

    @RequestMapping(value = "/login", method=RequestMethod.POST)
    public ModelAndView loginvalidateForm(ModelMap model, @ModelAttribute("loginForm") Login login, BindingResult result, HttpSession session) {

        if(result.hasErrors()){
            model.addAttribute("result", "All Fields are neccessary");
            return new ModelAndView("index",model);
        }
        if(emp_service.validateLogin(login.getUsername(), login.getPassword()))
        {
            List<Employee> user_info = emp_service.getUserinfo(login.getUsername());
            session.setAttribute("session_username", login.getUsername()); //Add value to session variable
            model.addAttribute("result", "Login Success");
            model.addAttribute("user_info", user_info);
            return new ModelAndView("LoginSuccess",model);
        }
        else
        {
            model.addAttribute("result", "Login Failure");
            return new ModelAndView("index",model);     
        }
    }

}

Login.java

package java4s.model;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

public class Login {

    @NotNull
    @Size(min = 3, max = 20)
    private String username;

    @NotNull
    @Size(min = 3, max = 20)
    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;
    }
}

我试图在登录字段为空时对其进行验证,但是在索引页面上没有显示登录字段为空的错误。 代码中有什么问题?

您必须添加注释@Valid(有关详细信息,请参阅spring doc ):

public ModelAndView loginvalidateForm(ModelMap model, @Valid @ModelAttribute("loginForm") Login login, BindingResult result, HttpSession session) {
....
}

不要忘记启用“mvc:annotation-driven”以使Spring MVC支持@Valid注释。 将以下标记添加到应用程序上下文XML文件中。

<mvc:annotation-driven />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM