论坛首页 入门技术论坛

关于struts validation 验证的学习

浏览 3964 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-03-30  
这几日公司的项目准备使用struts的验证,所以就看了一下写在这里希望对各位有帮助,同时希望各位多讨论:
validation.xml文件的文档结构是由validator_1_1_3.dtd文件定义,其文件头部内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"        

"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">

其顶层元素为:<form-validation>,它包含<formset>和<global>子元素。一般只需要定义<formset>元素,<formset>元素定义格式如下:

<formset>
<constant></constant>
<form></form>
</formset>
其中<constant />为可选子元素,而<form />子元素至少需要出现一次。<form />子元素的定义格式如下:

<form name="">
<field property=""></field>
..............
<field property="" depends=""  page=""  indexedListProperty=""></field>
</form>

其中属性描述如下:
name:指定了表单的名字与配置文件中的form-bean的name相同;
field:对应表单中验证的字段;
property:对应ActionForm的属性;
depends:指定验证规则,例如:required、maxlength等;
page:ActionForm若是跨页表单,则与表单中的page属性对应。

field应该是你验证信息实现的部分:
例如你想进行email验证:
<field property="email" depends="required, email">
<arg0 key="UserForm.email" />
</field>
其中key对应的是资源文件中的键值,当然为了得到正确且可读的信息,开发人员还需要在资源文件中添加errors.required等默认的错误信息

,具体操作如下:errors.email = {0}是无效e-mail地址

在Struts中的验证机制还提供了扩展,开发人员可以添加自定义的验证规则,例如可添加文件类型的验证。此时需要编写的Java类、在

validator-rules.xml添加该验证规则以及添加验证的js。
   发表时间:2008-04-03  
为啥不用 struts2 呢?
0 请登录后投票
   发表时间:2008-04-16  
我想问一下,要用validator验证的时候要在struts-config.xml文件里先配置<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,
                                              /WEB-INF/validation.xml" />
</plug-in>
对吧,就这一点我有疑问,我的项目对每个模块都新建了配置文件,比如:struts-config-user.xml,那么plug-in我写在哪一个xml文件中才能有效配置validator,我分别在总的struts-config.xml和单独的struts-config-user.xml中都有引入plug-in但就是没用啊,服务器启动时,没有显示读取相应的validator-rule.xml以及validation.xml文件的信息。第一次用validator做验证,问的有点小白,望指导下,谢谢
0 请登录后投票
   发表时间:2008-04-16  
这个东西非常不好用,是鸡肋建议不用。
0 请登录后投票
   发表时间:2008-04-22  
有利也有弊,建议楼主使用js验证.
0 请登录后投票
   发表时间:2008-04-24  
最近几天 在做项目呢,有些忙 没有上来看看,首先感谢各位的讨论。
先回答一下 iRoger 的问题吧
应该在那个xml 文件必须是在web.xml配过的,至于那一个看你的个人爱好了,不过一般情况下只在一个xml文件中配plug-in一个就行了
至于服务器没显示信息,我就不知道了,我的反正会显示,你用log4j打出来看一下,如果是plug-in配错的话,服务器肯定会报错,如果你的服务器没报错,就是对的,不是这个原因,再看看别的吧
0 请登录后投票
   发表时间:2008-04-24  
我可以说 struts的验证其实就是对js的封装。如果是害处比较大的话我想人家不会傻到把它在封装一下的,岂不是南辕北辙。弊肯定有的,人无完人何况是人做的东西呢。我们讲的是大的方面的好处,实际他们在前端验证都是差不多的,只是方便一点的问题。服务器端还是要验证的
1 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics