SpringMVC之编程式校验

摘要:
--完成视图的对应--˃18˂!--对转向页面的路径解析。

1.编程式效验需要实现Validator接口,针对模型类进行校验
2.jar包

SpringMVC之编程式校验第1张

3.项目测试结构

SpringMVC之编程式校验第2张

4.StudentModel.java(模型类)

1 packagecom.wt.entity;
2 
3 public classStudentModel {
4     privateString name;
5     privateString pwd;
6     private intage;
7     publicString getName() {
8         returnname;
9 }
10     public voidsetName(String name) {
11         this.name =name;
12 }
13     publicString getPwd() {
14         returnpwd;
15 }
16     public voidsetPwd(String pwd) {
17         this.pwd =pwd;
18 }
19     public intgetAge() {
20         returnage;
21 }
22     public void setAge(intage) {
23         this.age =age;
24 }
25     
26 }
View Code

5.StudentValidator.java(校验器)

1 packagecom.wt.entity;
2 
3 importorg.springframework.validation.Errors;
4 importorg.springframework.validation.ValidationUtils;
5 importorg.springframework.validation.Validator;
6 
7 public class StudentValidator implementsValidator{
8     //验证是否支持效验的StudentModel对象,匹配则执行效验
9 @Override
10     public boolean supports(Class<?>clazz) {
11         
12         return StudentModel.class.equals(clazz);
13 }
14     //效验数据的方法,object为效验的对象,Errors为效验的错误信息
15 @Override
16     public voidvalidate(Object obj, Errors errors) {
17         //效验name和pwd属性为空时加入错误信息
18         ValidationUtils.rejectIfEmpty(errors, "name", null,"姓名不能为空");
19         ValidationUtils.rejectIfEmpty(errors, "pwd", null,"密码不能为空");
20         if(errors.hasErrors()){
21             //上面发现错误,直接返回,下面也无需效验
22             return;
23 }
24         //针对属性的规则进行具体效验
25         StudentModel stu=(StudentModel) obj;
26         if(stu.getName().length()<5||stu.getName().length()>10){
27             errors.rejectValue("name", null, "姓名长度错误,应在5~10间");
28 }
29         if(stu.getPwd().length()<8||stu.getPwd().length()>15){
30             errors.rejectValue("pwd", null,"密码长度错误,应在8~15之间");
31 }
32         if(stu.getAge()<=0||stu.getAge()>100){
33             errors.rejectValue("age", null, "年龄错误,应在1~100之间");
34 }
35 }
36 
37 }
View Code

6.ValidController.java(控制器)

1 packagecom.wt.entity;
2 
3 importorg.springframework.stereotype.Controller;
4 importorg.springframework.validation.Errors;
5 importorg.springframework.web.bind.annotation.RequestMapping;
6 
7 @Controller//定义控制器
8 public classValidController {
9     //声明效验器
10     StudentValidator studentValidator=newStudentValidator();
11     @RequestMapping(value="validstu.html")//访问路径
12     publicString validStudent(StudentModel model,Errors errors){    
13         studentValidator.validate(model, errors);//效验对象
14         if(errors.hasErrors()){//发现错误,forword到错误页面
15             return "Error";
16 }
17         return "result";//成功
18         
19 }
20 }
View Code

7.springmvc-servlet.xml

1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4     xmlns:mvc="http://www.springframework.org/schema/mvc"
5     xmlns:p="http://www.springframework.org/schema/p"
6     xmlns:context="http://www.springframework.org/schema/context"
7     xsi:schemaLocation="
8         http://www.springframework.org/schema/beans
9         http://www.springframework.org/schema/beans/spring-beans.xsd
10         http://www.springframework.org/schema/context
11         http://www.springframework.org/schema/context/spring-context.xsd
12         http://www.springframework.org/schema/mvc
13         http://www.springframework.org/schema/mvc/spring-mvc.xsd">
14         <!-- 注解扫描 -->
15     <context:component-scan base-package="com.wt.entity"/>
16      
17     <!-- 完成视图的对应 -->
18     <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
19     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
20         <property name="prefix" value="/WEB-INF/jsp/example1/"/>
21         <property name="suffix" value=".jsp"/>
22     </bean>
23 
24 </beans>
View Code

8.web.xml

1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"   version="3.1">
3   <display-name>SpringMVC</display-name>
4   <servlet>
5     <servlet-name>article6</servlet-name>
6     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
7     <init-param>
8       <param-name>contextConfigLocation</param-name>
9       <param-value>classpath:springmvc-servlet.xml</param-value>
10     </init-param>
11   </servlet>
12   <servlet-mapping>
13     <servlet-name>article6</servlet-name>
14     <url-pattern>/url/*</url-pattern>
15 </servlet-mapping>
16 </web-app>
View Code

9.Errors.jsp(头部导入form标签)

1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2     pageEncoding="UTF-8"%>
3     <%@taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>
4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
5 <html>
6 <head>
7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
8 <title>Insert title here</title>
9 </head>
10 <body>
11 <sf:form commandName="studentModel">
12 显示所有错误消息
13     <br>
14     <sf:errors path="*"/>
15     <br>
16     <br>
17 显示属性为age的错误信息
18     <br>
19     <sf:errors path="age"></sf:errors>
20 </sf:form>
21 </body>
22 </html>
View Code

10.result.jsp

1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2     pageEncoding="UTF-8"%>
3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7 <title>Insert title here</title>
8 </head>
9 <body>
10 效验成功
11 </body>
12 </html>
View Code

11.测试结果

SpringMVC之编程式校验第3张

免责声明:文章转载自《SpringMVC之编程式校验》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇对WEB url 发送POST请求在CentOS上安装和配置Guacamole下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

.Net Core Linux centos7行—.net core json 配置文件

.net core 对配置系统做出了大幅度更新,不在局限于之前的*.xml配置方式。现在支持json,xml,ini,in memory,环境变量等等。毫无疑问的是,现在的json配置文件是.net core世界中的一等公民。 每个类型的配置文件都有一个schema说明。有schema的好处是能有智能提示。 可以在任何配置项的Key上面按F12导航到该配...

Netty通过心跳保持长链接

 Netty自带心跳检测功能,IdleStateHandler,客户端在写空闲时主动发起心跳请求,服务器接受到心跳请求后给出一个心跳响应。当客户端在一定时间范围内不能够给出响应则断开链接。 Java代码   public class NettyClient {       public void connect(String remoteServer...

SpringMvc 项目配置

spring-mvc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan...

java web开发入门四(spring)基于intellig idea

spring  1.spring简介 Spring框架,可以解决对象创建以及对象之间依赖关系的一种框架。                           且可以和其他框架一起使用;Spring与Struts,  Spring与hibernate                           (起到整合(粘合)作用的一个框架) Spring提供了一...

HTML5中实现文件上传下载的三种解决方案(推荐)

前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对 Http 协议较模糊,故这次采用渐进的方式来学习文件上传的原理与实践。该博客重在实践。 一. Http协议原理简介      HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于19...

python 3.6 链接mssql 进行数据操作

#!/usr/bin/env python # -*- coding: UTF-8 -*- import pymssql class MSSQL(object): ''' 对pymssql的简单封装 pymssql库,该库到这里下载:http://www.lfd.uci.edu/~gohlke/pythonl...