Struts验证框架与一些技巧
还是通过一些步骤例子说明
首先建立Struts工程的时候要启动验证框架。
它称为Validator验证框架
主要依赖与两个.jar文件
Jakarta-oro.jar
Commons-validator.jar?
这个是在struts-config.xml文件中如下加入配置之后即代表该工程已经使用验证框架的插件了?
?
完成好了之后以注册的例子说明它的主要使用方法
1.建立一个注册的页面;包含用户名: 密码: 年龄: 邮箱:都不能为空。密码长度必须大于或等于8位,邮箱格式验证等
显示方式一:使用错误消息显示在相应的控件后面。
2.建立注册页相对应的表单Bean(ActionForm),重点在这里,因为要使用验证框架的话该表单类需要修改
1)修改该类的继承??
4、编写消息资源文件
验证规则的配置文件中所用key的名字为该资源文件所配置
?
要使用该配置,在ActionForm中要实例化一个user对象才可以通过以上配置使用对象中username的属性
?上面的代码也可以实现刚才的功能,但是在验证框架中就不能那么使用了
Tiles标签?
作用与嵌套网页,可以定制好一个模板,然后在模板中使用相应的可编辑内容?第二种情况是以一个定制了的模板生成个新的网页
?
(1)防止重复提交;? Action
原理是通过在请求里面加入一些身份标记,在请求的时候判断是否事先存放的标记,如果不是则是第二次非正常提交?
那么对应这个表单就要在Struts-config.xml中配置一个与其对应的form-bean
?----------------------------------------------------
2.配置Struts-config.xml中的 <action/>,将动态ActionForm
与某个Action结合起来;
只要name属性名称一致就可以了
在Action中的业务方法有些改动,因为它自动生成表单bean,所以取值的时候要像这样取,get中填写xml配置中的属性名字,把form强转换成DynaActionForm类对象,使用.get方法,返回Object,所以相应的再强转成想要的类型
String username=(String)((DynaActionForm)form).get("username");
Integer userage=(Integer)((DynaActionForm)form).get("userage");
3.客户使用表单,表单中名称与<form-bean>中声明的相同;
最后在使用完表单bean之后要删除掉刚才生成的bean;方法如下
request.removeAttribute(mapping.getAttribute());//删除FormBean
(3)DispatchAction类,可以在一个Action中编写多个业务方法;
1、编写Action,要继承DispatchAction,且无execute()方法;
2、在Action类中提供多个业务方法;
3、在表单/超链接中生成请求时,用URL: xxxxx.do?method=XX
4、使用该类,可以节省Action的个数;
测试DispatchAction类(一个Action处理多种业务):
加math.do?method=add
减math.do?method=dec
乘math.do?method=mul
在Action类中要写入相应的方法。?
其他几个以此类推。。。。。。。。。。。。
(4)一个表单实现多种业务(计算器)----LookupDispatchAction;
LookupDispatchAction(一个表单对应多个处理方法):
1、编写Action,继承LookupDispatchAction类;
2、重写LookupDispatchAction类的getKeyMethodMap(),在该方法内对提交按钮文字“键名”和“业务方法名”进行映射;1 楼 iq527 2008-10-13 为什么这篇文章都没人回复呢??/
做shoppingcart的时候没做过验证
本来想试下这个,可是不是很熟悉
时间又不够
看了这贴子倒是收获蛮多的 2 楼 ziyu_1 2008-10-14 我喜欢直接写javascript校验 3 楼 hantsy 2008-10-14 我的博客也写过此类的文章。
http://blog.chinaunix.net/u/1096/showart_476630.html
另外这个系列也有包含tiles,国际化等内容的使用。
4 楼 coder1982 2008-10-14 个人实践证明,无论struts1或struts2的验证框架,在复杂多变的业务系统开发中都是不可取的。
5 楼 孤魂一笑 2008-10-22 这都04年的技术吧 6 楼 chbest 2008-10-22 coder1982 写道个人实践证明,无论struts1或struts2的验证框架,在复杂多变的业务系统开发中都是不可取的。
很支持 7 楼 java365 2008-10-23 楼主列出的这些,自己以前在项目中都用到过。
不管怎么样,楼主总结的都是在用struts 的过程中非常常用的。 8 楼 fenghai 2008-10-24 总结的不错,谢谢!不过用验证框架更方便!! 9 楼 lkjust08 2008-10-28 其实楼总结的东西,是一个很好的学习资料,但我想在实际的开发过程中,这些验证似乎不怎么实用,还是用JS验证要好。 10 楼 liucl_tiger 2008-10-28 我也只是做过JS的验证! 11 楼 aws 2008-10-28 倒是从来不自己写JS验证,那么多的页面
orz 12 楼 ddd0401 2008-11-17 感觉用JS验证也不错啊,比如把常用的JS验证代码进行集中管理、引用也不失为一个好的方案,而且修改时也不用看配置文件到处找方法了,比较直观。暂时还没用过struts的验证框架。 13 楼 witcheryne 2009-01-07 感觉还是 js 验证直观点....
刚接触struts验证框架.. 看的人有点头晕... 14 楼 zds625 2009-01-08 都是只用JS验证,用这些验证框架感觉太复杂啦,也许有它的好处,但是在开发中还没发现到! 15 楼 folie2006 2009-01-09 其实Struts的验证已经到了服务器端的了,所以JS只能控制到前台,这个只是更深一层验证罢了,但实际中比较少用吧. 16 楼 walle1027 2009-04-10 struts的验证框架,看上去很美,用起来很痛苦。 17 楼 duronshi 2009-04-11 一个项目里至少有50个页面吧,试想下,光验证规则配置文件有多少行?
想想就怕 18 楼 bailang3106 2009-09-10 支持下 不过还是用js 哎 学习js中。