- 浏览: 121096 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
wangyudong:
很多API doc生成工具生成doc需要重度依赖代码里加注解的 ...
使用Eclipse生成CHM帮助文档(图解) -
time_siyecao:
楼主举个栗子啊。。
使用Eclipse生成CHM帮助文档(图解) -
铃儿响叮当:
解决了,说的很对~
The Struts dispatcher cannot be found -
cddcdd:
好好的图形界面不用啊
win7设置无线wifi(图解) -
PerfectPlan:
coding1688 写道1.web服务器可以配置gzip压缩 ...
关于Gzip压缩js文件提高网站运行速度
Struts2 -validate验证框架(客户端验证 及服务端验证)
一、为什么要使用struts2的validate验证框架
:使用struts2的验证框架,能够提高客户端提交的数据的安全性。通过验证,确保保存进数据库的信息是正确的
二、使用struts2的validate框架?
: 1.我们需要配置struts2项目的最基本的jar包。(validate验证框架是有"xwork-core"包提供的)
: 2.使用struts2自带的validate验证有两种方法
a):使用代码实现 验证功能 (也就是重写ActionSupport中的validate()方法) 在validate方法中进行编写我们需
要的验证功能 这里需要提几点的就是:
1.当我们需要对action中的某一个指定的方法使用validate()方法验证时我们需要自定义一个validate
2.当我们使用自定义的validate方法时,最好将重写的ActionSupport的validate方法去掉 (这是为了避免
引起冲突,因为如果action类中存在重写的validate()方法 程序会自动调用我们自定义的validate方法 之
后再调用它 这样就验证了多次,非常不利于程序的效率。而且容易出现冲突)
3.在创建自定义的validate方法时需要注意该方法的 方法名! 该方法名由 validate+对应的表单提交的
action中的 执行方法名称(首字母大写)
附上一段代码:
struts.xml: <action name="*/*" class="*" method="test"> //这里的method指定action对象调用哪一个方法执行 //..此处省略 </action> 对应的action类中的片段: public String test(){//action操作的方法 //..此处省略 return ""; } public void validateTest() //这是我们自定义的validate方法 (validateTest) 这便是方法名 { //一定要记住大写test的首字母 //..此处省略 } @override Public String execute()//这是重写ActionSupport的方法 { //..此处省略 return ""; } @override public void validate()//这是重写ActionSupport的方法 如果我们需要有 //execute方法并且还要对它接收的数据信息进行验证 { //那么我们可以将方法名改成 valiateExecute()便可以了 //..此处省略 }
b):使用xml文件进行配置验证功能(建议使用xml配置文件进行validate的验证)
: 1.需要使用到xwork-core包下的 xwork-validate.dtd(版本根据项目进行选择,不过大体相同)
: 2.关于使用Xml进行验证 的两种情况: 全局验证 和局部验证
a):关于全局验证
全局就是针对整个action对象进行xml验证
当我们使用全局验证时候需要在 action对象的同目录下创建一个xml配置文件
文件名是由 : action对象的名称+(-validation.xml)
b):关于局部验证
局部验证是针对action对象中的某一个方法进行xml验证
使用局部验证的时候同样要在 action对象的同目录下创建一个xml配置文件
不过使用局部验证需要在struts.xml 中进行配置
代码如下:(struts.xml)
<constant name="struts.enable.DynamicMethodInvocation" value="false" /> <package name="struts2" extends="struts-default"> //这一个<action>主要针对整个action对象 <action name="register"class="org.viancent.action.RegisterAction"> <result name="success">/show.jsp</result> <result name="input"> /register.jsp</result> </action> //这个<action>主要针对action的某一个方法 (采用了通配符 * 与 {1} 的值是相同的) <action name="register_*" class="org.viancent.action.RegisterAction"method="{1}"> <result name="success">/show.jsp</result> <result name="input"> /register.jsp</result> </action> </package>
//如果我们需要访问action类中的test方法 则表单上可以这样写 <s:action="register_test">
所以该validate框架的xml配置文件名就是:action对象名+(-register_test-validation.properties)
:3.使用struts2的validate框架有两种验证类型
下面给出一个实例: action对象: package org.viancent.action; 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 String users; public String getUsers() { return users; } public void setUsers(String users) { this.users = users; } 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; } @Override public String execute() throws Exception { // TODO Auto-generated method stub return super.execute(); } // 自定义的执行方法 public String test() throws Exception { System.out.println("test method invoked!"); // TODO Auto-generated method stub return super.execute(); } // 自定义的校验方法 public void validateTest() { System.out.println("validateTest method invoked!"); } @Override public void validate() { System.out.println("validate method invoked!"); if (null == this.getPassword() || "".equals(this.getPassword()) || null == this.getRepassword() || "".equals(this.getRepassword())) { return; } if (!this.getPassword().equals(this.getRepassword())) { this.addFieldError("repassword", "repassword should be same password"); } } }struts.xml的信息:
<struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <package name="struts2" extends="struts-default"> <action name="register" class="org.viancent.action.RegisterAction"> <result name="success">/show.jsp</result> <result name="input"> /register.jsp</result> </action> <action name="register_*" class="org.viancent.action.RegisterAction" method="{1}"> <result name="success">/show.jsp</result> <result name="input"> /register.jsp</result> </action> </package> </struts>
局部validate框架的xml配置信息(RegisterAction-register_test-validation.xml)
<validators> <field name="username"> //指明是对哪一个属性进行验证 <field-validator type="requiredstring"> //验证的类型 <param name="trim">true</param> <message>username should be notblank!</message> //如果错误显示给客户端的信息 </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>username should be not between${minLength} and ${maxLength}</message> </field-validator> </field> <field name="age"> <field-validator type="required"> <message>age should be not blank!</message> </field-validator> <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 be not blank!</message> </field-validator> <field-validator type="date"> <param name="min">1990-10-10</param> <param name="max">2011-3-14</param> <message>birthday should be between ${min} and ${max} </message> </field-validator> </field> </validators>
全局validate框架的xml配置信息(RegisterAction-validation.xml)
<validators> <field name="users"> <field-validator type="requiredstring"> <message>users should be not blank!</message> </field-validator> <field-validator type="stringlength"> <param name="minLength">6</param> <param name="maxLength">10</param> <message>users should be between ${minLength} and ${maxLength}</message> </field-validator> </field> </validators>
view 界面的jsp信息:
register.jsp: <body style="text-align: center"> <s:form action="register_test">//服务端验证 <s:textfield name="username" id="username" label="username"></s:textfield> <s:password name="password" id="password" label="password"></s:password> <s:password name="repassword" id="repassword" label="repassword"></s:password> <s:textfield name="age" id="age" label="age"></s:textfield> <s:textfield name="birthday" id="birthday" label="birthday"></s:textfield> <s:submit></s:submit> <s:reset></s:reset> </s:form> <s:form action="register" validate="true">//客户端验证 validate="true"(关键点) <s:textfield name="users" label="users" id="users"></s:textfield> <s:submit></s:submit> </s:form> </body>
show.jsp:
<body> <s:property value="username"/> <s:property value="password"/> <s:property value="age"/> <s:property value="birthday"/> <s:property value="users"/> </body>
这里说明一下 validate xml验证的规则
发表评论
-
The Struts dispatcher cannot be found
2012-06-18 09:32 1170异常: 严重: Servlet.service() f ... -
Struts2-处理流程图
2012-06-16 11:36 1185附件是struts2的处理流程图 -
Struts2-default.properties详解
2012-06-16 11:31 1132Struts2-default.properties详解 ... -
Struts2+Jquery+Dom4j实现服务器返回Xml文档
2012-06-16 11:17 2095Struts2+Jquery+Dom4j实现服务器返回X ... -
struts2-上传与下载
2012-06-16 10:14 10632关于struts2-上传与下载 一、st ... -
Struts2- Gson的使用
2012-06-16 09:33 5585关于Struts2- Gson的使用 一、 ... -
Struts-JSON的提高开发效率
2012-06-15 23:40 3736关于Struts-JSON的提高开发效率 一、J ... -
Struts2-I18n国际化
2012-06-15 18:45 1549关于Struts2-I18n国际化 ... -
Struts2-属性驱动与模型驱动
2012-06-15 18:08 17114Struts2 - 属性驱动与模型驱动 一、为什 ... -
struts2-类型转换器和类型转换错误处理机制
2012-06-15 17:54 6092关于struts2的类型转换器和类型转换错误处理机制 ... -
Struts2-自定义类型转换器
2012-06-14 21:46 4361Struts2 -类型转换 类型转换器 一、为什 ... -
Struts2-入门学习
2012-06-14 21:27 1114Struts2入门 Struts2是基于Str ...
相关推荐
这个validate验证框架中的actiionerror级别的错误的验证提示,并包含了如何在一个Action中处理多个业务逻辑,(struts1.x 中的DispatcheAction),例子比较简单,希望对大家学习struts有所帮助。
在Struts验证框架中实现表单重置方法
NULL 博文链接:https://quicker.iteye.com/blog/793141
我最近在学习struts2框架,写了个简单的struts2的validate的验证,比较简单,适合初学者!
Struts的验证框架Validate使用[2]
包含validator_1_1_3.dtd和validator-rules.xml两个struts验证框架的必须文件
ide:myeclipse6.0 struts1.3 主要验证字段有姓名,密码,电话,email,信用卡,日期等等。
Struts的验证框架Validate使用续一
这个文件是一个eclipse工程, 导入,启动tomcat就可以访问. 简单自定义validate的例子, 简单易懂.
适合初学者 struts2验证框架简单示例
Struts的验证框架Validate使用[1]
[浪曦原创]Struts系列 第6讲 Struts的验证框架Validate使用续二(zk001)
[浪曦原创]Struts系列 第4讲 Struts的验证框架Validate的使用(zk001)
[浪曦原创]Struts系列 第5讲 Struts的验证框架Validate使用续一(zk001)
struts验证框架实例,validate框架
struts1.2 validate 源代码 实现 下载,myeclipse 下struts1.2框架下validate 表单验证,简单例子,功能已经实现
Struts1.3 与1.2向比验证框架部分还是有所区别的,该例子通过一个简单的Email的校验,演示如何通过Struts Validate验证框架进行在页面中生成JavaScripte脚本,进行客户端校验。下完后记得评分,资源分就会回来,还能...
利用ssh框架完成远程教育系统.实现功能基本的数据库操作增删改查 以及分页,遍历发帖回帖,validate验证框架等技术
但是这样做,不好之处就是我们可以通过人为的将开发者的验证js注掉,这样就导致验证失败,对后台安全性是一个很大的威胁,在采用struts2进行开发时,我们可以采用框架内置的校验器! 本附件为【Struts2】★☆之...