浏览 1917 次
锁定老帖子 主题:struts1.x中的验证问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-13
然后,在里加如属性,方法(由于这里的方法我们自己定义,所以就不选已设置的方法了)和JSP页面(JSP页面被自动设置到WebRoot下的form里,非常好的实施了MVC架构)。 。 并且在我们要实施动作的JSP页面中,在<body>体里要写上这样下列代码: <html:form action="/log"(与struts-config.xml中的PATH相对应) onsubmit="return validateLogForm(this)”(提交后返回到验证的FORM);> <html:javascript formName="logForm" />(使用js对logForm表单验证,logForm是LogForm表单的匿称,与struts-config.xml中的<form-bean name="logForm"………>相对应。 然后在ApplicationResources.properties里从validator-rules.xml复制下列语句 # Struts Validator Error Messages errors.required={0} is required. errors.minlength={0} can not be less than {1} characters. errors.maxlength={0} can not be greater than {1} characters. errors.invalid={0} is invalid. errors.byte={0} must be a byte. errors.short={0} must be a short. errors.integer={0} must be an integer. errors.long={0} must be a long. errors.float={0} must be a float. errors.double={0} must be a double. errors.date={0} is not a date. errors.range={0} is not in the range {1} through {2}. errors.creditcard={0} is an invalid credit card number. errors.email={0} is an invalid e-mail address. #logform 自定义 logform.username= wrong. 这些都是我们以后验证时要在弹出框中显示的语句。 Errors后的内容是要验证的规则,这些验证方法都可以在验证规则即validator-rules.xml里找到。 我们在struts-config.xml里: <action-mappings > <action attribute="logForm" input="/form/log.jsp" name="logForm" path="/log" scope="request" type="com.yourcompany.struts.action.LogAction" validate="true"> <forward name="s" path="/form/MyJsp.jsp" /> </action> 里面必须加上validate="true"这么句代码,否则,验证机制将可能不会运行。 另外,配置文件中还须加入以下代码,表示使用插件: <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验证工程的时候,在工程的WEB-INF里是没有validation.xml的,这就要求我们自己来添加这个XML文件了。我们可以这样做: 先新建一个validation.xml,然后找到我们的struts-config.xml,然后在Design中按鼠标右键—>NEWNEW PLUGINADD,然后在plugin class里写入org.apache.struts.validator.ValidatorPlugIn,然后在set property框中的property里 复制validator-rules.xml中的一句代码:pathnames,在value里复制:/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml,表明使用的插件文件,最后,在validation.xml里,我们写入下列代码: <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE form-validation (View Source for full doctype...)> - <form-validation> - <formset> - <form name="logForm">所要所要验证的表单昵称 - <field property="username" depends="mask,required">对于什么属性进行验证,依赖于哪些方法 <arg0 key="logform.username" />从ApplicationResources.properties里找寻相关的方法,可以是自己定义的方法,也可以用已有的方法 <arg1 name="mask" key="errors.invalid" resource="true" />从ApplicationResources.properties里找寻相关的方法,resource=true表示使用资源束里定义的资源语句,使用false表明不使用资源束里的资源语句,直接使用key属性定义的值。 - <var> <var-name>mask</var-name> <var-value>pan</var-value> 验证某属性的值是否与设定值相符合。 </var> </field> </form> </formset> </form-validation> 我们在实体类里建立了username属性,然后通过验证机制,将与我们的username设定的值不一致的结果显示其错误。(我们给定的属性的值是pan) 好,下面我们来看下我们的验证出来的结果: 以上图示表明如果username为空或错误,则通过STRUTS的验证机制来进行验证并报错。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间: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做验证,问的有点小白,望指导下,谢谢 |
|
返回顶楼 | |