`
zhaolianyang
  • 浏览: 97432 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2学习笔记八(第8讲.Struts2的校验框架)

阅读更多
第8讲.Struts2的校验框架

之前的验证方式是struts2提供的硬编码的方式的验证,struts2还提供了一个优秀的校验框架,是基于xml文件配置的,我们可以通过这个xml配置文件,而不用再写任何的代码就能完成表单的输入校验。
一、如果要验证哪个action就要在那个action的同一目录下创建验证框架的xml的文件,还是基于上节课的register2.jsp的表单验证,所以在com.test.action包下创建RegisterAction-validation.xml文件(后面的-validation.xml是不变的,前面的是对应的要验证的action的名称):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators >

	<field name="username">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>username should not be blank!</message>
		</field-validator>
		<field-validator type="stringlength">
			<param name="minLength">6</param>
			<param name="maxLength">10</param>
			<message>username should be between ${minLength} and ${maxLength}</message>
		</field-validator>
	</field>

	<field name="password">
		<field-validator type="requiredstring">
			<message>password should not be blank!</message>
		</field-validator>
		<field-validator type="stringlength">
			<param name="minLength">6</param>
			<param name="maxLength">10</param>
			<message>password should be between ${minLength} and ${maxLength}</message>
		</field-validator>
	</field>
	
	<field name="repassword">
		<field-validator type="requiredstring">
			<message>repassword should not be blank!</message>
		</field-validator>
		<field-validator type="stringlength">
			<param name="minLength">6</param>
			<param name="maxLength">10</param>
			<message>repassword should be between ${minLength} and ${maxLength}</message>
		</field-validator>
	</field>
	
	<field name="age">
		<field-validator type="int">
			<param name="min">1</param>
			<param name="max">150</param>
			<message>age should be between ${min} and ${max}</message>
		</field-validator>
	</field>
	
	<field name="birthday">
		<field-validator type="required">
			<message>birthday should not be blank!</message>
		</field-validator>
		<field-validator type="date">
			<param name="min">2001-01-01</param>
			<param name="max">2003-12-31</param>
			<message>birthday should be between ${min} and ${max}</message>
		</field-validator>
	</field>
	
	<field name="graduation">
		<field-validator type="required">
			<message>graduation should be not blank!</message>
		</field-validator>
		<field-validator type="date">
			<param name="min">2005-01-01</param>
			<param name="max">2007-12-31</param>
			<message>graduation should be between ${min} and ${max}</message>
		</field-validator>
	</field>
	
</validators>


三、同时注释掉action类中的对应的自定义的验证方法,注释后代码如下:
...
@Override
	public String execute() throws Exception {
		
		return SUCCESS;
	}
//	public String abc() throws Exception {
//		
//		System.out.println("abc() method invoked");
//		return SUCCESS;
//	}
//	
//	public void validateAbc(){
//		
//		System.out.println("validateAbc() invoked");
//	}

	@Override
	public void validate() {
		
		System.out.println("validate~~~~~~~~~~~~~~");
		if(null == username || username.length() < 6 || username.length() > 10){
			this.addActionError("username invalid");
		}
		if(null == password || password.length() <6 || password.length() > 10){
			this.addActionError("password invalid");
		}
		else if(null == repassword || repassword.length() < 6 || repassword.length() > 10){
			this.addActionError("repassword invalid");
		}
		else if(!password.equals(repassword)){
			this.addFieldError("password", "two passwords not the same");
		}
		if(age <= 0 || age > 150){
			this.addActionError("age should be between 1 and 150");
		}

		if(null != birthday && null != graduation){
			Calendar c1 = Calendar.getInstance();
			c1.setTime(birthday);
			
			Calendar c2 = Calendar.getInstance();
			c2.setTime(graduation);
			
			if(!c1.before(c2)){
				this.addActionError("birthday should be before graduation");
			}
		}
	}
...

四、重新修改Register2.jsp页面中的显示错误信息的级别,因为之前的是actionerror级别的,要修改为fielderror级别的:
<table align="center" width="40%">
		<tr>
			<td>
				<s:fielderror cssStyle="color:red"/>
			</td>
		</tr>
	</table>

说明:如果校验信息不是很复杂的情况下尽量的使用校验框架,如果校验信息十分复杂的情况下要用validate()进行校验,目的都是将错误信息放到fielderror级别里面去。
1
1
分享到:
评论

相关推荐

    struts2学习笔记九(第9讲.Struts2的校验框架 续)

    在第九讲中,我们将深入探讨Struts2的校验框架,这是一个非常重要的功能,它有助于确保输入数据的准确性和完整性,防止非法数据导致的系统异常。 在传统的Java web开发中,数据验证通常在服务器端进行,如Servlet或...

    struts2学习笔记.doc

    ### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...

    struts2校验器与校验框架精彩学习笔记

    本学习笔记主要探讨了Struts2中的校验器(Validator)和校验框架,帮助开发者理解如何有效地实现数据验证,确保应用程序的健壮性。 首先,我们来看Struts2的校验框架。这个框架提供了强大的功能,可以对用户输入...

    struts2学习笔记三(第3讲.Struts2的类型转换)

    在本篇“Struts2学习笔记三”中,我们将聚焦于Struts2的类型转换这一核心特性。类型转换在处理用户提交的数据时非常关键,它允许Struts2自动将请求参数转换为Java对象的属性。 在Struts2中,类型转换主要由`...

    struts2学习笔记

    Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中广泛使用,提供了丰富的功能和灵活性。下面将详细讲解Struts2的一些核心知识点。 **一.Struts2核心文件:struts.xml配置** Struts2的...

    struts2学习笔记五(第5讲.Struts2的输入校验)

    在Struts2的学习过程中,第五讲主要探讨的是输入验证,这是确保应用程序数据安全和准确性的关键步骤。输入验证通常发生在客户端和服务器端,防止恶意数据的提交,并确保用户输入的数据符合预设的格式和规则。 首先...

    struts2学习笔记六(第6讲.Struts2的输入校验续一)

    在第六讲中,我们将深入探讨Struts2的输入验证机制,这是确保应用程序数据安全性和正确性的重要环节。Struts2的输入验证可以分为客户端验证和服务器端验证,两者都有其优点和适用场景。 首先,客户端验证通常使用...

    传智播客struts2全程学习笔记

    ### 传智播客Struts2全程学习笔记 #### Struts2的优点 1. **无侵入式设计**:与Struts1相比,Struts2的设计更为先进,它不依赖于Servlet API或Struts API,这使得Struts2更加灵活且易于集成到其他环境中。在代码...

    struts2框架2016版资料day01

    通过传智播客的struts2框架2016版day01课程,你可以系统地掌握Struts2的基础知识,为后续的深入学习和项目开发打下坚实的基础。同时,结合笔记和思路图,可以更好地理解和吸收所学内容,提升学习效率。在实际编程中...

    struts2综合笔记

    - **lib**: 包含 Struts2 框架的核心库和第三方插件库。 - **src**: 包含 Struts2 框架的全部源代码。 #### 五、深入理解 Struts2 - **灵活度**: - Struts2 的知识点虽然分散,但其灵活性和扩展性非常强。 - **...

    Struts2超详细学习笔记分享(献给自学新人)

    本篇超详细学习笔记将带你逐步深入理解Struts2的核心概念和运作机制。 首先,让我们了解Struts2的基本特性。Struts2是一个基于Servlet的框架,它通过将JSP作为视图(View),Servlet作为控制器(Controller),并将...

    Struts2学习笔记

    Struts2是一个强大的MVC框架,它在Java Web开发中被广泛应用。相比于它的前身Struts1.x,Struts2提供了一系列改进和增强的功能。在本文中,我们将深入探讨Struts2的核心组件——Action,以及如何配置和使用它来构建...

    Struts2_学习笔记.zip

    这个"Struts2_学习笔记"包含了关于Struts2框架的深入学习资料,是理解并掌握Struts2核心概念和技术的关键。 Struts2的核心设计理念是模型-视图-控制器(MVC)架构模式,它简化了Java Web开发,将业务逻辑、数据展示...

    Struts2.1学习笔记

    ### Struts2.1框架深度解析与学习指南 #### 搭建Struts2.1环境 Struts2是Apache组织开发的一个开源Web框架,它继承了Struts1的优良特性,同时在很多方面进行了改进,使其更加轻量级、灵活、强大。Struts2.1版本相...

    自己总结的struts2学习笔记(转)

    ### Struts2学习笔记 ...Struts2作为一款成熟的Web开发框架,为Java开发者提供了丰富的功能和便利,通过上述的学习笔记,希望能帮助大家更系统、全面地了解和掌握Struts2,从而在实际项目开发中发挥出更大的作用。

Global site tag (gtag.js) - Google Analytics