`
sailyyang
  • 浏览: 6598 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

springmvc页面校证

阅读更多
 对于Spring 的页面校正 如下
<spring:bind path="command.name">
      name: 
<input type="text" name="name" value="/>"/>(必须输入)
       
<c:if test="${status.error}">
          
<font color="#FF0000">
          错误:
           
<c:forEach items="${status.errorMessages}" var="error">
                
<c:out value="${error}"/>
           
c:forEach>
          
font>
        
c:if>
     
spring:bind>
<spring:bind path="command.name">
      name: 
<input type="text" name="name" value="/>"/>(必须输入)
       
<c:if test="${status.error}">
          
<font color="#FF0000">
          错误:
           
<c:forEach items="${status.errorMessages}" var="error">
                
<c:out value="${error}"/>
           
c:forEach>
          
font>
        
c:if>
     
spring:bind>

Spring MVC为我们提供了类似struts validator的验证框架,但spring并非编写xml验证文件,而且是实现期自身提供的Validator接口,为我们的POJO javabean提供针对具体类的验证,非常方便,下面,我们就一起来实现这个功能

 

首先,我们先编写一个注册页面,只有两个字段,姓名和性别,这里要求姓名和性别都必须输入,而且性别只能输入0或1

register.jsp 

<!---->
<!---->
<!---->
<!---->DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  
<head>
    
   
 
  
head>
  
  
  
<body>

   
<spring:bind path="command.*">
        
<font color="#FF0000">
           
<c:forEach items="${status.errorMessages}" var="error">
                错误: 
<c:out value="${error}"/><br>
            
c:forEach>
        
font>
    
spring:bind>          

   
<form action="<!---->/register.mvc" method="post">
     
<spring:bind path="command.name">
      name: 
<input type="text" name="name" value="/>"/>(必须输入)
       
<c:if test="${status.error}">
          
<font color="#FF0000">
          错误:
           
<c:forEach items="${status.errorMessages}" var="error">
                
<c:out value="${error}"/>
           
c:forEach>
          
font>
        
c:if>
     
spring:bind>br>
     
<spring:bind path="command.sex">
     sex:  
<input type="text" name="sex"/>(必须输入,且为0或1)
     
<c:if test="${status.error}">
          
<font color="#FF0000">
          错误:
           
<c:forEach items="${status.errorMessages}" var="error">
                
<c:out value="${error}"/>
           
c:forEach>
          
font>
        
c:if>
     
spring:bind>br>
           
<input type="submit" value="submit"/>
     
   
form>
  
body>
html>

 

其中关于Spring bind标签和jstl标签可以先暂时忽略,后面酱油详细介绍

然后编写我们的表单对应POJO JavaBean

Student.java

 

package model;

public class Student ...{
   
private String name;
   
private String sex;
public String getName() ...{
    
return name;
}

public void setName(String name) ...{
    
this.name = name;
}

public String getSex() ...{
    
return sex;
}

public void setSex(String sex) ...{
    
this.sex = sex;
}

}

 

编写我们的控制器controller
RegisterStudentController.java

这个控制室是在我们通过验证后,将表单输入的内容显示在一个成功页面中,页面逻辑名用getSuccessView()获得,从spring配置文件中注入

package Action;

import model.Student;

import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

public class RegisterStudentController extends SimpleFormController ...{



    
public RegisterStudentController()...{
        
this.setCommandClass(Student.class);
    }



    
protected ModelAndView onSubmit(Object object, BindException arg1) throws Exception ...{
         Student stu
=(Student)object;
         
return new ModelAndView(getSuccessView(),"student",stu);
    }



}

 

线面编写我们的

验证根据errors对象返回错误,我们有两种定制errors的方法

(1) errors.rejectValue("name","notnull",null, "用户名长度必须输入!");
          rejectVlaue方法有4个参数:
1. Error Code  显示错误时,将根据错误代码识别错误信息类型。
2. Message Key上面关于ApplicationContext 的国际化支持时, 我们曾经谈及MessageSource的使用,
        这里我们可以通过引入MessageSource实现提示信息的参数化,此时,本参数将用作.properties文件
        中的消息索引。
3. Error Argument  如果提示信息中需要包含动态信息,则可通过此参数传递需要的动态信息对象。具
        体参见ApplicationContext中关于国际化实现的描述。
4. Default Message
        如果在当前MessageSource中没有发现Message Key对应的信息数据,则以此默认值返回。
        这里我们暂时尚未考虑国际化支持,所有的信息都将通过Default Message返回

(2) ValidationUtils.rejectIfEmpty(errors, "name", "name", "姓名必须输入");

 

 

package model;

import org.apache.oro.text.perl.Perl5Util;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;

public class StudentValidator implements Validator ...{
    
private static String SEX_REGEXP="/^[0-1]$/";
   
    
public boolean supports(Class cls) ...{
     
        
return cls.equals(Student.class);
    }

    
    
public void validate(Object object, Errors errors) ...{
         Student student
=(Student)object;
//         if(student.getName().equals("")||student.getName()==null){
//             errors.rejectValue("name",
//                     "notnull",
//                     null,
//                     "用户名长度必须输入!");
//         }
        ValidationUtils.rejectIfEmpty(errors, "name""name""姓名必须输入");
        ValidationUtils.rejectIfEmpty(errors, 
"sex""sex""性别必须输入");
        Perl5Util perl5Util
=new Perl5Util();
        
if(!perl5Util.match(SEX_REGEXP, student.getSex()))...{
            errors.rejectValue(
"sex""not confirmat"null,"性别格式错误");
分享到:
评论

相关推荐

    《基于SpringMVC的校园论坛设计与实现》毕业论文

    SpringMVC通过ModelAndView对象将数据传递给视图,同时可以指定跳转的页面。控制器层则由Controller类组成,它们处理HTTP请求,调用Service层并准备数据,最后将结果返回给视图。 在论坛的权限管理方面,Spring ...

    广东第二师范学院校园助手系统是基于网络爬虫模拟登录技术和Spring、SpringMVC、Mybatis框架开发的校.zip

    在视图层,它可能使用JSP、Thymeleaf等技术来渲染页面。在校园助手系统中,SpringMVC负责处理用户交互,展示各种校园信息和功能。 Mybatis则是一个持久层框架,它简化了数据库操作,允许开发者通过编写简单的XML或...

    毕业论文jsp2365校园兼职网站springmvc.doc

    【毕业论文jsp2365校园兼职网站springmvc.doc】主要探讨了21世纪背景下,随着信息化进程的加速,如何运用先进的技术手段构建一个高效、便捷的校园兼职网站。这篇论文详细介绍了系统的开发过程,包括从研究背景、需求...

    毕业设计,校园新闻系统,使用SpringBoot、SpringMVC、Mybatis、Bootstrap.zip

    - 数据展示:使用Bootstrap创建响应式的新闻列表和详情页面,提供良好的用户体验。 - 错误处理与日志记录:异常捕获和日志记录,便于调试和问题排查。 开发者在学习和实现这个项目时,可以深入理解SpringBoot、...

    校园新闻系统,使用SpringBoot、SpringMVC、Mybatis、Bootstrap.zip

    这个项目涵盖了后端服务开发、数据库操作、前端页面设计等多个方面,是学习和实践Java Web开发的优秀案例。通过分析和理解这个项目,开发者可以深入了解Spring全家桶的应用,以及如何结合前端框架构建响应式UI,同时...

    基于ssm(spring+springmvc+mybatis)的校园二手交易市场

    前端采用 HTML、CSS 和 JavaScript 构建用户界面,通过 Ajax 技术与后端进行数据交互,实现页面的动态加载和交互功能。MySQL 数据库存储用户信息、商品信息和交易记录,确保数据的持久性和一致性。这一系统旨在促进...

    Mycelipse9下整合springMVC和mybatis的maven项目

    - **Tomcat6.0**: Apache的Jakarta Servlet容器,用于部署运行Java Servlet和JSP页面的应用服务器。 - **Apache Maven 3.0.4**: 一个项目管理和自动构建工具,通过一个中央信息管理所有的配置信息,为项目提供标准化...

    管理系统系列-- 校园赛事管理系统,基于SSM框架一个比赛裁判管理系统,主要技术(SpringMVC + Sprin.zip

    同时,前端界面可能采用**HTML、CSS、JavaScript**进行设计,结合**jQuery**、**Bootstrap**等库提升用户体验,而**Ajax**技术则用于实现页面异步更新。 总之,【校园赛事管理系统】利用SSM框架实现了高效且功能...

    毕业设计javajsp高校教师年终考核填报系统springmvc-qrp源码含文档工具包

    毕业设计javajsp高校教师年终考核填报系统springmvc-qrp源码含文档工具包 页面是jsp,数据库mysql,jdk1.8,开发工具用ecplise、myecplise、sts、idea都可以 教师登陆端 ①教师注册登录:老师利用教职工号进行注册...

    毕业论文jsp2388校友数据分析springmvc.doc

    【毕业论文——校友数据分析系统基于JSP和SpringMVC】 毕业设计中,本文重点探讨了一款名为“校友数据分析”的系统,旨在解决当前教育行业在管理校友信息时所面临的挑战。随着社会的快速发展,教育行业的用户数量...

    校内点餐系统(spring、springMVC、mybatis、shiro)

    在点餐系统中,Shiro负责用户登录验证,权限控制,如限制未登录用户访问某些页面,以及对管理员和普通用户的权限进行差异化管理。 六、项目管理 项目管理部分包含了概要设计说明书,这是项目开发前的重要文档,详细...

    校园二手市场ssm.rar

    【标题】"校园二手市场ssm.rar"是一个基于Java技术栈的项目,主要采用了Spring、SpringMVC和MyBatis(SSM)三大框架来构建一个校园二手市场的在线平台。这个项目旨在为在校大学生提供一个方便、快捷的交易平台,使...

    基于ssm框架的校园交流社区的设计与实现

    在JSP中,可以使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)标签库,简化页面逻辑,增强可读性。 项目开发过程中,前端界面的设计同样重要。虽然描述中提到未考虑浏览器的自适应...

    校园门户网站的设计与实现.docx

    采用SSM(Spring、SpringMVC、MyBatis)框架,提供稳定且高效的业务逻辑处理能力。MySQL作为关系型数据库,存储各类信息,保证数据安全。 3.3 系统架构 采用MVC模式设计,分离视图、控制和模型,提高代码复用性和可...

    基于ssm校园点餐平台的设计

    用户可以通过前端页面浏览菜单、选择菜品、填写配送信息并提交订单。 7. **安全性**:考虑到校园点餐平台涉及用户的个人信息和支付安全,系统需要实现登录验证、权限控制以及敏感信息加密等安全措施。Spring ...

    校园二手交易平台毕业论文-答辩审核通过终版.doc

    - **Ajax**:异步JavaScript和XML的缩写,允许网页部分刷新,提高用户体验,无需每次交互都重新加载整个页面。 - **MySQL**:开源的关系型数据库管理系统,适用于处理大量数据,是本系统中存储交易信息的核心工具...

    基于ssm+jsp的语言校园快递代取系统源码数据库.zip

    在本系统中,JSP页面通常用于展示数据,与后台JavaBean交互,通过EL(表达式语言)和JSTL(JavaServer Pages Standard Tag Library)标签库,简化了页面的编写,提高了开发效率。 系统的主要功能包括用户注册与登录...

    基于springboot的校园疫情防控系统源码数据库.zip

    本系统基于SpringBoot框架,结合Java编程语言,SSM(Spring、SpringMVC、MyBatis)架构,以及jsp前端页面,构建了一个高效、易维护的防控平台。下面我们将深入探讨这个系统的组成部分和关键技术点。 首先,...

    基于javaee 的校园二手物品交易市场

    它采用经典的“Spring + SpringMVC + Struts2”(简称S2SH)框架体系,这是一套成熟且广泛应用于企业级开发的技术组合,具有良好的可维护性和扩展性。 1. **Spring框架**:作为核心的依赖注入(DI)和面向切面编程...

    基于ssm+vue校园教务系统.zip

    Vue.js是一款轻量级的前端MVVM(Model-View-ViewModel)框架,具有简洁的API和高效的虚拟DOM,适合构建复杂的单页面应用。在教务系统中,Vue.js负责界面的渲染和交互,提供丰富的组件库和强大的状态管理,提升用户...

Global site tag (gtag.js) - Google Analytics