- 浏览: 97430 次
- 性别:
- 来自: 北京
最新评论
-
zhaolianyang:
leftcopychenhx 写道&是在什么情况作为逻 ...
JAVA 面试32问 -
zhaolianyang:
Mybeautiful 写道第二十六,当一个线程进入一个对象的 ...
JAVA 面试32问 -
leftcopychenhx:
&是在什么情况作为逻辑运算符呢
JAVA 面试32问 -
Mybeautiful:
第二十六,当一个线程进入一个对象的一个synchronized ...
JAVA 面试32问 -
zhaolianyang:
dayaolili 写道 那就换个有激情有动力的工作吧!换个适 ...
如何在工作中保持旺盛的状态???
Struts2的输入校验续二
主要介绍addActionError的用法:
一、修改com.test.action下的RegisterAction.java类(把addFieldError改成addActionError):
struts2标签能自动的显示错误信息,但是只局限于addFieldError级别的,当使用addActionError的时候就不能自动的显示错误的提示信息了。
二、需要在标签页面register2.jsp里面添加一个标签<s:actionerror/>:
结果如下:
当年龄输入的为字母型的字符串时,验证如下图:
会出现验证重复的现象:
三、要修改注册页面register.jsp的标签格式:
效果如下图所示:
问题:当页面出现多个form表单时,如何用不同的方法来进行验证?
四、修改struts.xml中RegisterAction的配置,添加一个method属性,指定acton要执行的方法abc:
五、在RegisterAction中创建Action要执行的abc方法:
问题:当在RegisterAction类中有多个的表单的action需要验证该怎么办?
六、在struts.xml中添加一个需要用到xyz方法的Action:
七、在RegisterAction类中创建对应的action验证方法:
控制台输出效果:
说明:在RegisterAction中如果自定义了验证的方法如validateAbc(),但是同样会执行validate验证的方法,这是不科学的,所以可以不重写validate方法,但是execute方法有没有验证了,所以validate方法可以写成validateExexute()方法。
主要介绍addActionError的用法:
一、修改com.test.action下的RegisterAction.java类(把addFieldError改成addActionError):
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.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){ // 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.addActionError("birthday should be before graduation"); } } } }
struts2标签能自动的显示错误信息,但是只局限于addFieldError级别的,当使用addActionError的时候就不能自动的显示错误的提示信息了。
二、需要在标签页面register2.jsp里面添加一个标签<s:actionerror/>:
<body> <s:actionerror cssStyle="color:red"/> <s:form action="register"> <s:textfield name="username" label="username"></s:textfield> <s:password name="password" label="password"></s:password> <s:password name="repassword" label="repassword"></s:password> <s:textfield name="age" label="age"></s:textfield> <s:textfield name="birthday" label="birthday"></s:textfield> <s:textfield name="graduation" label="graduation"></s:textfield> <s:submit value=" submit "></s:submit> </s:form> </body>
结果如下:
当年龄输入的为字母型的字符串时,验证如下图:
会出现验证重复的现象:
三、要修改注册页面register.jsp的标签格式:
<body> <table align="center" width="40%"> <tr> <td> <s:actionerror cssStyle="color:red"/> </td> </tr> </table> <s:form action="register" theme="simple"> <table align="center" width="40%" border="1"> <tr> <td>username </td> <td> <s:textfield name="username" label="username"></s:textfield> </td> </tr> <tr><td>password</td> <td> <s:password name="password" label="password"></s:password> </td> </tr> <tr><td>repassword</td> <td> <s:password name="repassword" label="repassword"></s:password> </td> </tr> <tr><td>age</td> <td> <s:textfield name="age" label="age"></s:textfield> </td> </tr> <tr><td>birthday</td> <td> <s:textfield name="birthday" label="birthday"></s:textfield> </td> </tr> <tr><td>graduation</td> <td> <s:textfield name="graduation" label="graduation"></s:textfield> </td> </tr> <tr><td><s:submit value=" submit "></s:submit></td> <td> <s:reset value=" reset "></s:reset> </td> </tr> </table> </s:form> </body>
效果如下图所示:
问题:当页面出现多个form表单时,如何用不同的方法来进行验证?
四、修改struts.xml中RegisterAction的配置,添加一个method属性,指定acton要执行的方法abc:
<action name="register" class="com.test.action.RegisterAction" method="abc"> <result name="success">/success.jsp</result> <result name="input">/register2.jsp</result> </action>
五、在RegisterAction中创建Action要执行的abc方法:
public String abc() throws Exception { System.out.println("abc method invoked"); return SUCCESS; }
问题:当在RegisterAction类中有多个的表单的action需要验证该怎么办?
六、在struts.xml中添加一个需要用到xyz方法的Action:
。。。 <action name="register" class="com.test.action.RegisterAction" method="abc"> <result name="success">/success.jsp</result> <result name="input">/register2.jsp</result> </action> <action name="zly" class="com.test.action.RegisterAction" method="xyz"> <result name="success">/success.jsp</result> <result name="input">/register2.jsp</result> </action>
七、在RegisterAction类中创建对应的action验证方法:
public String abc() throws Exception { System.out.println("abc() method invoked"); return SUCCESS; } public void validateAbc(){ System.out.println("validateAbc() invoked"); }
控制台输出效果:
说明:在RegisterAction中如果自定义了验证的方法如validateAbc(),但是同样会执行validate验证的方法,这是不科学的,所以可以不重写validate方法,但是execute方法有没有验证了,所以validate方法可以写成validateExexute()方法。
发表评论
-
struts2学习笔记十九(第19讲.Struts2深入探索 续)
2013-01-31 01:26 829Struts2应用开发详解 第十九讲 Struts2 深入 ... -
struts2学习笔记十八(第18讲.Struts2深入探索)
2013-01-26 00:23 8301、在src目录下创建属性文件名struts.propert ... -
struts2学习笔记十七(第17讲.Struts2的国际化续)
2012-06-01 00:46 1262struts2的国际化: 1.页面的国际化,也就是jsp的国际 ... -
struts2学习笔记十六(第16讲.Struts2的国际化)
2012-05-24 23:35 854struts2学习笔记十六(第16讲.Struts2的国际化) ... -
struts2学习笔记十五(第15讲.Struts2的文件上传和下载续三)
2011-02-11 16:56 948Struts2的文件上传和下载续三 功能:用户可以自定义上传文 ... -
struts2学习笔记十四(第14讲.Struts2的文件上传和下载续二)
2011-01-21 16:00 1372Struts2的文件上传和下载续二 说明:使用struts2的 ... -
struts2学习笔记十三(第13讲.Struts2的文件上传和下载续)
2011-01-19 18:04 987Struts2的文件上传和下载续 接上面未完成的功能。 一、首 ... -
struts2学习笔记十二(第12讲.Struts2的文件上传和下载)
2011-01-18 14:57 1352Struts2的文件上传和下载 ... -
struts2学习笔记十一(第11讲.Struts2的核心 拦截器续)
2011-01-14 16:33 1054Struts2的核心 拦截器续 说明:拦截器的主要作用就是拦截 ... -
struts2学习笔记十(第10讲.Struts2的核心 拦截器)
2011-01-13 17:47 1003Struts2的核心 拦截器 一、修改RegisterAct ... -
struts2学习笔记九(第9讲.Struts2的校验框架 续)
2011-01-12 18:11 1115Struts2的校验框架 续 struts2同样支持客户端的 ... -
struts2学习笔记八(第8讲.Struts2的校验框架)
2011-01-12 15:44 959第8讲.Struts2的校验框架 之前的验证方式是stru ... -
struts2学习笔记六(第6讲.Struts2的输入校验续一)
2011-01-10 14:32 1260Struts2的输入校验续一 说明: 遇到类型转换错误的时候 ... -
struts2学习笔记五(第5讲.Struts2的输入校验)
2011-01-07 18:36 1072Struts2的输入校验 数据校验是建立在类型转换的基础之上的 ... -
struts2学习笔记四(第4讲.Struts2的类型转换续)
2011-01-06 23:25 1067struts2中的局部类型转换 新的需求:用户需要同时增加三 ... -
struts2学习笔记三(第3讲.Struts2的类型转换)
2011-01-05 17:31 1095struts2中的局部类型转换 其中一个主要的就是使用逗号将 ... -
struts2学习笔记二(第2讲.Struts2入门与配置续)
2011-01-05 16:36 966接上面未完成的功能:判断输入的用户名和密码是否正确。 一、创建 ... -
struts2学习笔记一(第1讲.Struts2入门与配置)
2011-01-05 00:12 1404struts2学习笔记一(第1讲.Struts2入门与配置) ...
相关推荐
在第六讲中,我们将深入探讨Struts2的输入验证机制,这是确保应用程序数据安全性和正确性的重要环节。Struts2的输入验证可以分为客户端验证和服务器端验证,两者都有其优点和适用场景。 首先,客户端验证通常使用...
在第九讲中,我们将深入探讨Struts2的校验框架,这是一个非常重要的功能,它有助于确保输入数据的准确性和完整性,防止非法数据导致的系统异常。 在传统的Java web开发中,数据验证通常在服务器端进行,如Servlet或...
### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...
在Struts2的学习过程中,第五讲主要探讨的是输入验证,这是确保应用程序数据安全和准确性的关键步骤。输入验证通常发生在客户端和服务器端,防止恶意数据的提交,并确保用户输入的数据符合预设的格式和规则。 首先...
在本篇“Struts2学习笔记三”中,我们将聚焦于Struts2的类型转换这一核心特性。类型转换在处理用户提交的数据时非常关键,它允许Struts2自动将请求参数转换为Java对象的属性。 在Struts2中,类型转换主要由`...
本讲主要探讨Struts2的校验框架,它提供了对用户输入数据进行验证的功能,确保数据的有效性和安全性。 在传统的MVC模式中,数据验证通常在控制器或模型层进行,但在Struts2中,校验逻辑被移到了专门的校验框架中,...
5. **类型转换与输入校验**:Struts2在类型转换过程中也会进行基本的校验,如检查非空、数值范围等。 **四.Struts2的核心:拦截器** 拦截器是Struts2的核心组件,它们在Action执行前后介入处理流程。拦截器可以...
### 传智播客Struts2全程学习笔记 #### Struts2的优点 1. **无侵入式设计**:与Struts1相比,Struts2的设计更为先进,它不依赖于Servlet API或Struts API,这使得Struts2更加灵活且易于集成到其他环境中。在代码...
本学习笔记主要探讨了Struts2中的校验器(Validator)和校验框架,帮助开发者理解如何有效地实现数据验证,确保应用程序的健壮性。 首先,我们来看Struts2的校验框架。这个框架提供了强大的功能,可以对用户输入...
- **lib**: 包含 Struts2 框架的核心库和第三方插件库。 - **src**: 包含 Struts2 框架的全部源代码。 #### 五、深入理解 Struts2 - **灵活度**: - Struts2 的知识点虽然分散,但其灵活性和扩展性非常强。 - **...
本篇超详细学习笔记将带你逐步深入理解Struts2的核心概念和运作机制。 首先,让我们了解Struts2的基本特性。Struts2是一个基于Servlet的框架,它通过将JSP作为视图(View),Servlet作为控制器(Controller),并将...
这个"Struts2_学习笔记"包含了关于Struts2框架的深入学习资料,是理解并掌握Struts2核心概念和技术的关键。 Struts2的核心设计理念是模型-视图-控制器(MVC)架构模式,它简化了Java Web开发,将业务逻辑、数据展示...
### Struts2.1框架深度解析与...总之,Struts2.1的学习涵盖了环境搭建、配置管理、视图控制、输入校验、文件上传、国际化支持等多个方面,掌握这些知识点将使开发者能够构建出功能丰富、响应迅速、用户友好的Web应用。
此外,Struts2还支持Action级别和全局级别的异常处理,以及强大的数据校验机制。通过`@FieldValidator`和`@Validations`注解,可以在Action类中声明字段级和类级的验证规则。如果验证失败,Struts2会自动处理错误并...
在本篇学习笔记中,我们将重点讨论Struts2框架中的Action和拦截器(Interceptor)如何处理请求参数。 首先,Struts2的核心是拦截器机制,它允许我们在Action执行前后插入自定义的处理逻辑。在`struts-default.xml`...