博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC Validation验证(帖子最后有个问题,麻烦大神指点一下)
阅读量:4935 次
发布时间:2019-06-11

本文共 4411 字,大约阅读时间需要 14 分钟。

package com.domain;import java.io.Serializable;public class User implements Serializable {    private String loginname;    private String password;    public String getLoginname() {        return loginname;    }    public void setLoginname(String loginname) {        this.loginname = loginname;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}
package com.validator;import org.springframework.stereotype.Repository;import org.springframework.validation.Errors;import org.springframework.validation.ValidationUtils;import org.springframework.validation.Validator;import com.domain.User;@Repository("userValidator")//注解将该对象注释为Spring容器中的一个bean,名字为userValidatorpublic class UserValidator implements Validator {    /**该校验器能够对clazz类型的对象进行校验*/    @Override    public boolean supports(Class
clazz) { // TODO Auto-generated method stub return User.class.isAssignableFrom(clazz); } /**对目标target进行校验,并将校验错误存到errors中*/ @Override public void validate(Object target, Errors errors) { // TODO Auto-generated method stub ValidationUtils.rejectIfEmpty(errors, "loginname", "loginnameError"); ValidationUtils.rejectIfEmpty(errors, "password", "passwordError"); User user = (User)target; if(user.getLoginname().length() > 10) { errors.rejectValue("loginname", null, "loginnameMax"); } if(user.getPassword() != null && user.getPassword().length() < 6) { errors.rejectValue("password", null, "passwordMin"); } }}
package com.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.validation.Errors;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import com.domain.User;import com.validator.UserValidator;@Controllerpublic class UserController{    //注入userValidator    @Autowired    @Qualifier("userValidator")    private UserValidator userValidator;        @RequestMapping(value="/login",method=RequestMethod.POST)    public String login(@ModelAttribute User user,Model model,Errors errors)    {        model.addAttribute("user", user);        //验证        userValidator.validate(user, errors);        if(errors.hasErrors())        {            return "loginForm";        }        return "success";    }        @RequestMapping(value="/{formName}")    public String loginForm(@PathVariable String formName,Model model)    {        User user = new User();        model.addAttribute("user", user);        return formName;//动态页面的跳转,可以是任何页面    }}
/WEB-INF/content/
.jsp
classpath:messages
<%@ 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+"/";%>              测试Validation接口验证        

登录页面

登录名
密码

转载于:https://www.cnblogs.com/tengfeixinxing/p/7029875.html

你可能感兴趣的文章
静态页生成
查看>>
进度总结
查看>>
Python模块之: ConfigParser 配置文件读取
查看>>
day 6
查看>>
树莓派3B 安装微雪LCD5inch显示器(包含软键盘)
查看>>
两道递推公式题的解题报告
查看>>
一步步学习SPD2010--第七章节--使用BCS业务连接服务(1)--什么是BCS
查看>>
Atiit 常见功能 常用功能与模块的最快速解决方案
查看>>
JS高级学习笔记(5)之 事件
查看>>
记一次数据库死锁
查看>>
linux-网络数据包抓取-tcpdump
查看>>
web服务器
查看>>
EV: Workaround to Allow Only One Instance or Window of outlook
查看>>
数据校验,
查看>>
IntelliJ IDEA完美解决tomcat8+乱码问题
查看>>
GDI+ ColorMatrix的完全揭秘
查看>>
破解电信光猫华为HG8120C关闭路由功能方法
查看>>
在Qt示例项目的C ++ / QML源中的//! [0]的含义是什么?
查看>>
【智能家居篇】wifi网络接入原理(上)——扫描Scanning
查看>>
操作引入xml文件的书包(定位到指定节点)
查看>>