欢迎来到天天文库
浏览记录
ID:38751165
大小:91.50 KB
页数:8页
时间:2019-06-18
《怎样在struts中实现JS通用表单验证》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、怎样在struts中实现JS通用表单验证?关键词:javascript struts 通用 表单 验证 作者:欧阳春本篇通过介绍部分源代码及简单举例来说明struts架构中页面输入的JS验证问题及经过扩展后struts标签的使用。本struts的javascript表单验证能够推出要感谢“我佛山人”的优秀的JS表单验证代码。基于JSP标签的验证请直接参照通用表单验证.chm。下面只对struts标签的验证实现与使用进行举例说明:文中红色标记处为新增struts标签属性,不可更改属性中的值为关键字
2、,不可更改在JSP文件中使用标签时就跟普通struts标签一样使用,不过多了些控制属性如简单吧,实际的页面效果如那么如何才能实现这个效果呢?别着急,一步步来,还是需要花点功夫的。一、扩展struts源代码要做到集成JS,用标签解决表单验证,这一步当然是少不了的表单中需要验证的最常见的无非就是以下几种,text、textarea、password、hidden、radio、select、checkbox,因为text、password、hi
3、dden都是继承抽象类BaseFieldTag,标签的实现也在BaseFieldTag中,加上其它的每个都要扩展,所以需要修改和扩展的类就有5个,首先要说明的是,我们所作修改要尽量作扩展而不是直接修改struts里面的类,这样可以方便struts新版本的更新。由于有很多类都依赖于BaseFieldTag,而我们需要的也恰恰在BaseFieldTag里实现,迫不得已,我们还是要修改BaseFieldTag(以增加新的属性,无兼容性问题),除此之外,其它类一律用扩展方式。下面只举例修改BaseFieldTag,其它类似,就不一一列出了。关键部分在方法publicintdoStartT
4、ag()中,由于代码较长,只列出重要部分,其实也比较简单滴,只是将JS验证需要的属性添加进去而已,以便生成被控制的表单控件。如下……if(type!=null&&(type.equals("text")
5、
6、type.equals("hidden")
7、
8、type.equals("password"))){if(dataType!=null){results.append("dataType="");results.append(dataType);results.append(""");}if(min!=null){results.append("min="");result
9、s.append(min);results.append(""");}if(max!=null){results.append("max="");results.append(max);results.append(""");}if(operator!=null){results.append("operator="");results.append(operator);results.append(""");}if(require!=null){results.append("require="");results.append(require);results.a
10、ppend(""");}if(to!=null){results.append("to="");results.append(to);results.append(""");}if(format!=null){results.append("format="");results.append(format);results.append(""");}if(regexp!=null){results.append("regexp="");results.append(regexp);results.append(""");}if(msg!=null){results.
11、append("msg="");results.append(msg);results.append(""");}if(onselect!=null){results.append("onSelect="");results.append(onselect);results.append(""");}}…… 二、修改你的struts中的struts-html.tld文件在相关tag处增加需要的属性,例如……textorg.
此文档下载收益归作者所有