springMVC(八)——数据校验(后台校验 hibernate validate).

数据校验(后台校验 hibernate validate)

1、首先要导入jar包

2、在相应的实体类中加入注解

package com.zhiyou100.zjc.bean;

import javax.validation.constraints.Pattern;

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

public class User {
    @NotEmpty(message = "用户名不为空")
    private String username;
    @Length(min = 6,max = 18,message = "密码长度在6~18之间")
    private String password;
    @Pattern(regexp = "/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\\d{8}$/",message = "手机号格式不正确")
    private String phone;
    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;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }

}

下图为各个注解的意思:

3、在控制层接受参数时

package com.zhiyou100.zjc.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.validation.Valid;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.annotation.RequestMapping;

import com.zhiyou100.zjc.bean.User;

@Controller
public class UserController {

    @RequestMapping("login")//如果没有登录,那么访问该请求地址是被打倒登录界面
    //@Valid:校验该参数对象
    //BindingResult:封装所有的验证错误信息
    public String login(@Valid User user,BindingResult br,Model model) {
        if(br.hasErrors()) {//判断有没有错误信息
            List<FieldError> fieldErrors = br.getFieldErrors();//等到所有的错误信息
            Map<String, Object> errormsg = new HashMap<String, Object>();
            for(FieldError errors:fieldErrors) {
                //getField()得到错误的字段         getDefaultMessage()得到错误的提示信息
                errormsg.put(errors.getField(), errors.getDefaultMessage());
                System.out.println(errors.getField()+"----"+errors.getDefaultMessage());
            }
            model.addAttribute("msg", errormsg);
            return "forward:index.jsp";
        }
        return "list";
    }
}

前端代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <form action="login" method="post">
        用户名:<input type="text" name="username"/>${msg.username }<br>
        密码:<input type="text" name="password">${msg.password }<br>
        电话:<input type="text" name="phone">${msg.phone }<br>
        <input type="submit" value="登录">
    </form>
</body>
</html>

点击登录时,测试效果

原文地址:https://www.cnblogs.com/zjc364259451/p/11462588.html

时间: 2024-08-26 19:34:48

springMVC(八)——数据校验(后台校验 hibernate validate).的相关文章

登录(ajax提交数据和后台校验)

1.前台ajax数据提交 <form id="login_form" action="" method="POST">    <div class="login_frame" style="position:relative";>        <div class="login_gl" style="margin-top:35px;"&

SpringMVC 数据校验。(后台校验 hibernate validate).

1. 数据校验.(后台校验 hibernate validate). 引入jar包. 在相应的实体类中加入注解. 1 package com.zhiyou100.wc.bean; 2 3 import javax.validation.constraints.Pattern; 4 5 import org.hibernate.validator.constraints.Length; 6 import org.hibernate.validator.constraints.NotEmpty; 7

第5章—构建Spring Web应用程序—关于spring中的validate注解后台校验的解析

关于spring中的validate注解后台校验的解析 在后台开发过程中,对参数的校验成为开发环境不可缺少的一个环节.比如参数不能为null,email那么必须符合email的格式,如果手动进行if判断或者写正则表达式判断无意开发效率太慢,在时间.成本.质量的博弈中必然会落后.所以把校验层抽象出来是必然的结果,下面说下几种解决方案. 1.简单的校验Demo 依赖: <dependency> <groupId>javax.validation</groupId> <

springmvc(四) springmvc的数据校验的实现

so easy~ --WH 一.什么是数据校验? 这个比较好理解,就是用来验证客户输入的数据是否合法,比如客户登录时,用户名不能为空,或者不能超出指定长度等要求,这就叫做数据校验. 数据校验分为客户端校验和服务端校验 客户端校验:js校验 服务端校验:springmvc使用validation校验,struts2使用validation校验.都有自己的一套校验规则. 二.springmvc的validation校验 Springmvc本身没有校验功能,它使用hibernate的校验框架,hibe

SpringMVC-------3.文件上传,拦截器和数据校验(后台校验)

1.文件上传 1.1导入jar包 1.2设置表单提交属性 文件上传只允许表单为post提交,并且编码类型为multipart/form-data 1.3在springmvc中配置文件上传解析器. 其中的id名不能更改,否则报错 设置最大上传大小maxUploadSize 1.4 在控制层处理代码 @RequestMapping("upload") public String upload(MultipartFile myfile,HttpServletRequest request)

SpringMVC的数据校验

SpringMVC的数据校验: 在web应用程序中,为了防止客户端传来的数据引发程序异常,常常需要对 数据进行验证.输入验证分为客户端验证与服务器端验证.客户端验证主要通过JavaScript脚本进行,而服务器端验证则主要通过Java代码进行验证. 为了保证数据的安全性,一般情况下,客户端和服务器端验证都是必须的. 实现步骤如下: 1.首先我们需要引入jar包,注意jar包的冲突,hirbernate-validator引入4.0版本即可. 2.配置验证器 3.定义实体类,进行注解配置 4.书写

MVC查询数据接收及校验

本来想写一篇aspx的TreeView控件绑值的文章的,在写案例的时候,写了一半,发现有些地方还得考虑以下,就留待下次了. 这一篇的话,是最近在开发一个项目的时候,有大量的页面和数据表,需要花式查询, 后台接收前台传递过来的数据的时候,被虐的欲仙欲死,大量的校验和重复代码, 后来找到了一种非常不错的方法,分享出来,下面是正文..... 使用过MVC的人都知道,它有一个非常方便的功能,就是自动绑值,先来一个最简单的: 1 public ActionResult Index(string userN

DWZ 自定义异常及后台校验

1.form表单提交弹出自定义异常 示例: <form id="pagerForm" method="post" action="后台访问地址" class="pageForm required-validate" onsubmit="return validateCallback(this,dialogAjaxDonereload)"></form> 项目中默认使用:validat

springmvc,通过ajax方式提交页面数据,后台返回json数据中文信息乱码

本人刚开始接触springmvc,项目搭建参照https://my.oschina.net/gaussik/blog/385697.在用IDEA写登录注册的时候,想通过ajax方式提交数据到后台,然后遇到如题所述的乱码问题,然后度娘了好多,终于解决了.废话不多说,直接上代码. 首先是登录页面login.jsp 1 <%-- 2 Created by IntelliJ IDEA. 3 User: PENG027 4 Date: 2016/11/11 5 Time: 15:48 6 To chang