数据校验

1.引入jar包

2.配置验证器

   <!-- 配置验证器 -->
       <bean id="myvalidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
           <property name="providerClass" value="org.hibernate.validator.HibernateValidator"></property>
       </bean> 

       <mvc:annotation-driven validator="myvalidator"/>

3.创建实体

package cn.happy.entity;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.NotEmpty;
import org.jboss.logging.Message;

public class UserInfo {

     //必须是0到100之间
    @NotNull(message="成绩不能为空")
    @Min(value=0,message="成绩最小值为{value}")
    @Max(value=100,message="成绩最大值为{value}")
    private Integer score;

   //手机号码必须不能为空,必须是以1 开头 第二位3,4,5,6,7,8,9   最后9位随意
    @NotEmpty(message="手机号码不允许为空")
    @Pattern(regexp="^1[3,4,5,6,7,8,9]\\d{9}$",message="手机号码不正确")
  private String phone;

    //不能为空
    //必须是6个字符以上
     @NotEmpty(message="用户名不能为空")
    @Size(min=6,message="名称至少6个字符")
  private String name;

    public Integer getScore() {
        return score;
    }
    public void setScore(Integer score) {
        this.score = score;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}

4.编写handler

package cn.happy.controller;

import javax.validation.Valid;

import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import cn.happy.entity.UserInfo;

@Controller
public class FirstController {
    @RequestMapping("/first.do")
    public ModelAndView doFirst(@Valid UserInfo info,BindingResult br){
        ModelAndView mv=new ModelAndView();
        mv.setViewName("/WELCOME.jsp");
        //记录到底是哪个字段验证失败了
        //有一个可以侦测到验证错误总数的方法
        int errorCount = br.getErrorCount();
        if (errorCount>0) {
            //证明模型验证失败
            FieldError score = br.getFieldError("score");
            FieldError name = br.getFieldError("name");
            FieldError phone = br.getFieldError("phone");
            if (score!=null) {
                mv.addObject("scoremsg",score.getDefaultMessage());
            }

            if (name!=null) {
                mv.addObject("namemsg",name.getDefaultMessage());
            }

            if (phone!=null) {
                mv.addObject("phonemsg",phone.getDefaultMessage());
            }
            mv.setViewName("/index.jsp");
        }

        return mv ;
    }
}

时间: 2024-10-12 21:09:48

数据校验的相关文章

自己写的基于java Annotation(注解)的数据校验框架

JavaEE6中提供了基于java Annotation(注解)的Bean校验框架,Hibernate也有类似的基于Annotation的数据校验功能,我在工作中,产品也经常需要使 用数据校验,为了方便和重用,自己写了一个简单的基于Annotation的校验框架.有兴趣的可以扩展. 框架说明: AnnotationValidable接口:所有需要使用该校验框架的类都要实现它,该类中没有任何方法需要实现,仅仅是一个表明那些类需要使用该校验框架的标识. GetFiledValue类:是一个工具类,对

数据校验validator 与 DWZ

在做系统时经常会用到数据校验,数据校验可以自己写,也可以用现在成的,现在记录下两种类库使用方法, validator <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="pragma" content="n

《Java从入门到放弃》入门篇:springMVC数据校验

昨天我们扯完了数据传递,今天我们来聊聊数据校验的问题.来,跟着我一起读:计一噢叫,一按艳. 在springMVC中校验数据也非常简单,spring3.0拥有自己独立的数据校验框架,同时支持JSR303标准的校验框架. Spring的DataBinder在进行数据绑定时,会同时调用校验框架完成数据校验工作. 具体使用步骤如下: 1)导入数据校验的JAR包 2)在springmvc的配置文件中添加校验Bean 3)修改实体类,在属性上加上校验的注解 4)修改昨天的login4方法,加上校验的相关代码

SpringMVC数据校验

一.数据校验 在web应用程序中,为了防止客户端传来的数据引发程序异常,常常需要对 数据进行验证.输入验证分为客户端验证与服务器端验证.客户端验证主要通过JavaScript脚本进行,而服务器端验证则主要通过Java代码进行验证. 为了保证数据的安全性,一般情况下,客户端和服务器端验证都是必须的 二.关键步骤: ①.导入JAR包 SpringMVC支持JSR(Java Specification Result,Java规范提案)303-Bean Validation数据验证规范.而该规范的实现者

SpringMVC框架下数据的增删改查,数据类型转换,数据格式化,数据校验,错误输入的消息回显

在eclipse中javaEE环境下: 这儿并没有连接数据库,而是将数据存放在map集合中: 将各种架包导入lib下... web.xml文件配置为 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/

Struts2学习第三天——保存登陆信息及数据校验

在JSP中服务器端保存数据的作用域通常有request.session.application,它们对应的Servlet API分别是HttpServletRquerst.HttpSession.ServletContext.同样在Struts2的控制器中也需要访问这些作用域. Struts2提供了一个ActionContext类,该类被称为Action上下文或者Action环境,Action可以通过该类访问最常用的ServletAPI. ServletAPI有多种访问方式: 1. Servle

Spring MVC数据校验

在web应用程序中,为了防止客户端传来的数据引发程序异常,常常需要对 数据进行验证.输入验证分为客户端验证与服务器端验证.客户端验证主要通过JavaScript脚本进行,而服务器端验证则主要通过Java代码进行验证.   为了保证数据的安全性,一般情况下,客户端和服务器端验证都是必须的 1.导入jar包 SpringMVC支持JSR(Java Specification Result,Java规范提案)303-Bean Validation数据验证规范.而该规范的实现者很多,其中较常用的是Hib

spring mvc 数据校验

1.需要导入的jar包: slf4j-api-1.7.21.jar validation-api-1.0.0.GA.jar hibernate-validator-4.0.1.GA.jar 2.访问页面编码: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath();

WPF使用IDataErrorInfo进行数据校验

这篇博客将介绍如何使用IDataErrorInfo进行数据校验.下面直接看例子.一个Customer类,两个属性(FirstName, Age) class Customer { public string FirstName { get; set; } public int Age { get; set; } } 将Customer类继承IDataErrorInfo,并实现它的属性. class Customer : System.ComponentModel.IDataErrorInfo {

Struts 2的数据校验

既然说到了Struts 2的数据校验,我们该怎么去实现呢?又是通过什么来实现呢? 就让我带着大家一起来走进Struts 2的数据校验吧. 首先我们会想到在Stuts 2的登录案例中我们定义了一个Action接口的一个实现类,那数据校验是不是也要去实现Action呢?没错,就是这样的.但是它并没有直接去实现Action接口,而是通过继承ActionSupport类间接去实现Action接口 继承进行数据校验的ActionSupport类,既然我们继承ActionSupport类后要去用一个数据校验