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

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

阅读更多
Struts2的输入校验
数据校验是建立在类型转换的基础之上的。
一、在WebRoot根目录下创建一个类似于注册的未使用struts2的页面register.jsp(是用html表单的形式写的):
<body>
	
	<form action="register" method="post">
		<table align="center" width="40%" border="1">
			<tr>
				<td>username:</td>
				<td><input type="text" name="username"></td>
			</tr>
			<tr>
				<td>password:</td>
				<td><input type="password" name="password"></td>
			</tr>
			<tr>
				<td>repassword:</td>
				<td><input type="password" name="repassword"></td>
			</tr>
			<tr>
				<td>age:</td>
				<td><input type="text" name="age"></td>
			</tr>
			<tr>
				<td>birthday:</td>
				<td><input type="text" name="birthday"></td>
			</tr>
			<tr>
				<td>graduation:</td>
				<td><input type="text" name="graduation"></td>
			</tr>
			<tr>
				<td><input type="submit" value=" submit "></td>
				<td><input type="reset" value=" reset "></td>
			</tr>
		</table>
	</form>
	
  </body>

二、在包com.test.action中创建一个处理register表单的Action类RegisterAction.java继承ActionSupport类:
package com.test.action;

import java.util.Date;

import com.opensymphony.xwork2.ActionSupport;

public class RegisterAction extends ActionSupport {
	
	private String usernme;
	
	private String password;
	
	private String repassword;
	
	private int age;
	
	private Date birthday;
	
	private Date graduation;

	public String getUsernme() {
		return usernme;
	}

	public void setUsernme(String usernme) {
		this.usernme = usernme;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getRepassword() {
		return repassword;
	}

	public void setRepassword(String repassword) {
		this.repassword = repassword;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public Date getGraduation() {
		return graduation;
	}

	public void setGraduation(Date graduation) {
		this.graduation = graduation;
	}

	@Override
	public String execute() throws Exception {
		
		return SUCCESS;
	}
}

三、创建一个输出的success.jsp页面:
  <body>
	
	<form action="register.action" method="post">
		<table align="center" width="40%" border="1">
			<tr>
				<td>username:</td>
				<td>${requestScope.username}</td>
			</tr>
			<tr>
				<td>password:</td>
				<td>${requestScope.password }</td>
			</tr>
			<tr>
				<td>age:</td>
				<td>${requestScope.age }</td>
			</tr>
			<tr>
				<td>birthday:</td>
				<td>${requestScope.birthday }</td>
			</tr>
			<tr>
				<td>graduation:</td>
				<td>${requestScope.graduation }</td>
			</tr>
		</table>
	</form>
	
  </body>


四、在struts.xml中创建并配置Action的属性:
<action name="register" class="com.test.action.RegisterAction">
		<result name="success">/success.jsp</result>
		<result name="input">/register.jsp</result>
	</action>

五、继续修改RegisterAction.java类,添加验证的信息:
package com.test.action;

import java.util.Calendar;
import java.util.Date;

import com.opensymphony.xwork2.ActionSupport;

public class RegisterAction extends ActionSupport {
	
	private String username;
	
	private String password;
	
	private String repassword;
	
	private int age;
	
	private Date birthday;
	
	private Date graduation;

	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 getRepassword() {
		return repassword;
	}

	public void setRepassword(String repassword) {
		this.repassword = repassword;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public Date getGraduation() {
		return graduation;
	}

	public void setGraduation(Date graduation) {
		this.graduation = graduation;
	}

	@Override
	public String execute() throws Exception {
		
		return SUCCESS;
	}

	@Override
	public void validate() {
		
		if(null == username || username.length() < 6 || username.length() > 10){
			this.addFieldError("username", "username invalid");
		}
		if(null == password || password.length() <6 || password.length() > 10){
			this.addFieldError("password", "password invalid");
		}
		else if(null == repassword || repassword.length() < 6 || repassword.length() > 10){
			this.addFieldError("repassword", "repassword invalid");
		}
		else if(!password.equals(repassword)){
			this.addFieldError("password", "two passwords not the same");
		}
		if(age < 1 || age > 150){
			this.addFieldError("age", "age invalid");
		}
		if(null == birthday){
			this.addFieldError("birthday", "birthday invalid");
		}
		if(null == graduation){
			this.addFieldError("graduation", "graduation invalid");
		}
		if(null != birthday && null != graduation){
			Calendar c1 = Calendar.getInstance();
			c1.setTime(birthday);
			
			Calendar c2 = Calendar.getInstance();
			c2.setTime(graduation);
			
			if(!c1.before(c2)){
				this.addFieldError("birthday", "birthday should be before graduation");
			}
		}
	}
}

演示效果:
未输入时的初页面:

输入全部正确是的页面:

输入全部不正确时的页面:

最终的项目文件:(注意:未完,待续)
  • 大小: 88.7 KB
  • 大小: 78.8 KB
  • 大小: 96.1 KB
分享到:
评论

相关推荐

    struts2学习笔记.doc

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

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

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

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

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

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

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

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

    本讲主要探讨Struts2的校验框架,它提供了对用户输入数据进行验证的功能,确保数据的有效性和安全性。 在传统的MVC模式中,数据验证通常在控制器或模型层进行,但在Struts2中,校验逻辑被移到了专门的校验框架中,...

    struts2学习笔记

    5. **类型转换与输入校验**:Struts2在类型转换过程中也会进行基本的校验,如检查非空、数值范围等。 **四.Struts2的核心:拦截器** 拦截器是Struts2的核心组件,它们在Action执行前后介入处理流程。拦截器可以...

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

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

    传智播客struts2全程学习笔记

    5. **输入校验改进**:Struts2的输入校验功能得到了显著增强,它可以针对特定的方法进行校验,解决了Struts1中存在的问题,提高了开发效率。 6. **国际化支持**:Struts2提供了更好的国际化支持,可以方便地管理...

    struts2综合笔记

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

    Struts2学习笔记

    此外,Struts2还支持Action级别和全局级别的异常处理,以及强大的数据校验机制。通过`@FieldValidator`和`@Validations`注解,可以在Action类中声明字段级和类级的验证规则。如果验证失败,Struts2会自动处理错误并...

    Struts2.1学习笔记

    ### Struts2.1框架深度解析与...总之,Struts2.1的学习涵盖了环境搭建、配置管理、视图控制、输入校验、文件上传、国际化支持等多个方面,掌握这些知识点将使开发者能够构建出功能丰富、响应迅速、用户友好的Web应用。

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

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

    Struts2_学习笔记.zip

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

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

    ### Struts2学习笔记 #### 一、Struts2框架简介 Struts2是Apache软件基金会的一个开源项目,它是基于MVC(Model-View-Controller)设计模式的Web应用程序框架,用于Java EE平台上的Web应用开发。Struts2在Struts1...

    【张冰Struts2学习笔记】0202_Struts2的三种接收用户输入的方法

    在"【张冰Struts2学习笔记】0202_Struts2的三种接收用户输入的方法"中,我们主要探讨的是如何在Struts2中有效地获取并处理用户提交的数据。以下是对这三种方法的详细解析: ### 1. 使用Action属性 Struts2的核心是...

Global site tag (gtag.js) - Google Analytics