bean validation跟springmvc里不进行验证,BindingResult的errors一直是0

smallblood smallblood 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
照着官方文档和一大堆教程的配置,但是就是不进行验证,BindingResult的errors一直是0, hibernate-validator-5.1.3.Final.jar 和 validation-api-1.1.0.Final.jar 都导了,也没报错,就是明明我提交的是空信息但是errors一直是0。

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>


spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.yg.controller"/>
<mvc:annotation-driven/>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>


</beans>


User实体类
package com.yg.entity;

import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;

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

/**
* Created by 光 on 2015/3/3.
*/
public class User {
@NotEmpty(message = "不能为空")
private String userName;
@Size(min = 5,max = 12,message = "密码长度为5-12位")
private String password;
private String nickName;


public User() {
}

public User(String userName, String password, String nickName) {
this.userName = userName;
this.password = password;
this.nickName = nickName;
}

public String getUserName() {
return userName;
}

public String getPassword() {
return password;
}

public String getNickName() {
return nickName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public void setPassword(String password) {
this.password = password;
}

public void setNickName(String nickName) {
this.nickName = nickName;
}
}


UserController类
package com.yg.controller;

import com.yg.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.Errors;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import javax.validation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;

/**
* Created by 光 on 2015/3/3.
*/
@Controller
@RequestMapping("/user")
public class UserController {
private List<User> userList = new ArrayList<User>();

public UserController() {
userList.add(new User("luffy","123","路飞"));
userList.add(new User("nami","123","娜美"));
userList.add(new User("zero","123","索隆"));
userList.add(new User("sanji","123","香吉士"));
}

@RequestMapping("/users")
public String list(Model model){
model.addAttribute("users", userList);
return "/user/list";
}

@RequestMapping(value = "/add",method = RequestMethod.GET)
public String add(Model model){
model.addAttribute(new User());
return "/user/add";
}

@RequestMapping(value = "/add",method = RequestMethod.POST)
public String add(@Validated User user,BindingResult br){
System.out.println(br.getAllErrors().size());
if(br.hasErrors()){
System.out.println("进入");
return "/user/add";
}
userList.add(user);
return "redirect:/user/users";
}
}


添加信息的add.jsp
<%--
Created by IntelliJ IDEA.
User: 光
Date: 2015/3/4
Time: 10:20
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>
<html>
<head>
<title>添加用户</title>
</head>
<body>

<sf:form method="post" modelAttribute="user">
<sf:input path="userName" /><sf:errors path="userName"/> <br/>
<sf:password path="password"/><br/>
<sf:input path="nickName"/><br/>
<input type="submit" value="提交">
</sf:form>


</body>
</html>


我整了一天了,也没报错,就是不进行验证,对比了N个教程和官方文档都一样,但是别人的验证,我的没验证,实在没法了,求教啊
...全文

相关推荐

评论 20
收藏 已收藏
分享
返回顶部
smallblood
Web 开发 81,108 成员 341,721 内容