SpringMVC数据校验

                 如果想要实现数据校验,需要导入hibernate-validator-5.2.4.Final.jar,validation-api-1.1.0.Final.jar,jboss-logging-3.2.1.Final.jar,classmate-1.1.0.jar这四个包,

在sping配置文件中配置org.springframework.format.support.FormattingConversionServiceFactoryBean,因为<mvc:annotation-driven/>标签内部默认创建的ConversionService实例就是一个FormattingConversionServiceFactoryBean,所以只需要使用标签<mvc:annotation-driven />就可以了。

然后在需要校验的Bean字段上引用需要的标签如下:

package com.createnets.springmvc.core;

import java.io.Serializable;

import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;


    public class User implements Serializable { 
    	
    	@Length(min=2,max=6,message="用户信息错误,我滴天哪")
    	private String name;
    	@Email(message="email错误,我滴天哪")
    	private String email;
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		@Override
		public String toString() {
			return "User [emil=" + email + ", name=" + name + "]";
		}
		public String getEmail() {
			return email;
		}
		public void setEmail(String email) {
			this.email = email;
		}
    	
    }  

之后在Controller类方法中使用@valid标签,如下

    @Controller  
    @RequestMapping("/user")
    public class UserController {  
      
        @RequestMapping("/add")  
        public String add(@Valid User user, BindingResult result) {  
            if(result.hasErrors()) {  
                return "user/add";  
            }  
            return "user/add";  
        }  
    } 
最后在页面显示校验错误信息如下

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
  </head>
  
  <body> 
    11学生表单:<br>
    <form:form action="teacher/add.html" modelAttribute="model" >
    	<form:errors path="*"></form:errors>
    	<input type="hidden" name="id" value="1" />
		<table style="border:1px solid red;margin-left: 100px;">
			<tr>
				<td>
					学生姓名
				</td>
				<td>
				<form:errors path="name"></form:errors>
					<input type="text" name="name" />
				</td>
			</tr>
			<tr>
				<td>
					年龄
				</td>
				<td>
					<input type="text" name="age" />
				</td>
			</tr>
			<tr>
				<td colspan="2" align="center" valign="middle">
					<input type="submit" value="添加学生"/>
				</td>
			</tr>
		</table>    
    </form:form>
  </body>
</html>

注意modelAttribute="model" ,<form:errors path="*"></form:errors>,<form:errors path="name"></form:errors>

错误显示如下





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值