Struts验证器框架示例

Struts验证器框架提供了许多通用的验证方法,以使验证工作更加轻松和可维护。 使用Struts验证器,您需要将验证函数声明为xml文件而不是ActionForm validate()方法,这可以使Struts验证更加标准化,可重用且重复代码更少。

下载此示例– Struts-Validator-Example.zip

使用Struts Validator框架

这是使用Struts Validator框架的快速指南。

1.验证程序插件

要使用Struts验证程序插件,您需要在struts-config.xml文件中包含“ ValidatorPlugIn ”类。

...
<plug-in className="org.apache.struts.validator.ValidatorPlugIn" >
	<set-property property="pathnames"
	value="/WEB-INF/validator-rules.xml, /WEB-INF/validator-user.xml"/>
		
</plug-in>
...

validator-rules.xml ”文件包含所有通用的验证器名称,您可以在Struts分发库中获取此文件(不要自己创建此文件)。 并且“ validator-user.xml”包含您所有的表单字段验证。

2.验证人表格

对于Form bean需要使用验证器框架,它必须扩展ValidatorForm而不是ActionForm

import org.apache.struts.validator.ValidatorForm;

public class UserForm extends ValidatorForm{
..

3.validator-user.xml

一个userForm bean,email属性,并将“ required”和“ email”验证器附加到email属性。 “必填”验证器将确保文件不为空,“电子邮件”验证器用于检查正确的电子邮件格式。 “必需”和“电子邮件”验证程序都在“ validator-rules.xml”文件中声明。

<form-validation>
   <formset>
      <form name="userForm">
       
		 <field property="email" depends="required,email">
		 
		 	<msg name="required" key="err.user.email.required" />
		 	<msg name="email" key="err.user.email.invalid" />

		 </field>

     </form>
  </formset>
</form-validation>

Struts验证程序框架示例

了解Struts验证程序框架的最佳方法是创建一个简单的应用程序并逐步完成验证工作。 这是一个简单的用户注册表格,可使用Struts验证程序框架检查用户名,密码和电子邮件。

1.行动

动作类,仅转发成功请求。

UserAction.java

package com.mkyong.user.action;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class UserAction extends Action{
  
	public ActionForward execute(ActionMapping mapping, ActionForm form,
		HttpServletRequest request, HttpServletResponse response)
	throws Exception {
		
		return mapping.findForward("success");
	}
}

2.用户表格

UserForm扩展了ValidatorForm类。

UserForm.java

package com.mkyong.user.form;

import org.apache.struts.validator.ValidatorForm;
 
public class UserForm extends ValidatorForm{
	
	String username;
	String pwd;
	String pwd2;
	String email;
	
	//getter and setter methods
	
}

3.属性文件

属性文件包含所有标签和错误消息。

user.properties

#user module label message
label.user.name = Name
label.user.username = UserName
label.user.pwd = Password
label.user.pwd2 = Confirm Password
label.user.email = Email

label.user.button.submit = Submit

#Error message
err.user.username.required = Username is required.<br/>
err.user.username.length = Username length should be between {0} and {1}.<br/>
err.user.username.invalid = 
Username is invalid , it should be a-z, A-Z, 0-9, dash "-" or underscore "_".<br/>

err.user.pwd.required = Password is required.<br/>
err.user.pwd.length = Password length should be between {0} and {1}.<br/>
err.user.pwd.invalid = Password is invalid , it should be a-z, A-Z, 0-9.<br/>

err.user.pwd2.notmatch = Confirm password is not match.<br/>

err.user.email.required = Email is required.<br/>
err.user.email.invalid =  Email address is invalid.<br/>

4.查看页面

一个简单的jsp页面创建全部需要文本字段,而一个简单的感谢页面

RegisterUser.jsp










Struts - Validator Example

RegisterUser.jsp User Registeration Form







ThankYou.jsp







Struts - Validator Example

Thanks you for the registration

5. Struts配置

配置动作,表单映射并注册“ ValidatorPlugIn”插件。

struts-connfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" 
"http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
 
<struts-config>
	
   <form-beans>
	<form-bean name="userForm" type="com.mkyong.user.form.UserForm" />	
   </form-beans>
	
   <action-mappings>

	 	<action
			path="/Register"
			type="com.mkyong.user.action.UserAction"
			name="userForm"
			input="/pages/RegisterUser.jsp"
			>
 
			<forward name="success" path="/pages/ThanksYou.jsp"/>
 
		</action>

		<action
			path="/RegisterUserPage"
			type="org.apache.struts.actions.ForwardAction"
			parameter="/pages/RegisterUser.jsp"/>
		
   </action-mappings>
	
   <message-resources
		parameter="com.mkyong.user.properties.user" />
	
   <plug-in className="org.apache.struts.validator.ValidatorPlugIn" >
	<set-property property="pathnames"
	value="/WEB-INF/validator-rules.xml, /WEB-INF/validator-user.xml"/>
		
   </plug-in>

</struts-config>

6.validator-user.xml

为userForm的用户名,密码和电子邮件属性定义验证器。

验证程序-user.xml

<!DOCTYPE form-validation PUBLIC
 "-//Apache Software Foundation
//DTD Commons Validator Rules Configuration 1.3.0//EN"
 "http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd">

<form-validation>
   <formset>
      <form name="userForm">
         <field property="username" depends="required,maxlength,minlength,mask">
         
         	<msg name="required" key="err.user.username.required" />
		<msg name="maxlength" key="err.user.username.length" />
		<msg name="minlength" key="err.user.username.length" />
		<msg name="mask" key="err.user.username.invalid" />

		<arg name="maxlength" key="${var:minlength}" position="0" resource="false"/>
                <arg name="maxlength" key="${var:maxlength}" position="1" resource="false"/>

	        <arg name="minlength" key="${var:minlength}" position="0" resource="false"/>
                <arg name="minlength" key="${var:maxlength}" position="1" resource="false"/>
            
                <var>
            	        <var-name>minlength</var-name>
		        <var-value>3</var-value>
		</var>		
		<var>
			<var-name>maxlength</var-name>
			<var-value>15</var-value>
		</var>
                <var>
			<var-name>mask</var-name>
			<var-value>^[a-zA-Z0-9-_]*$</var-value>
		</var>
         </field>
         
         <field property="pwd" depends="required,maxlength,minlength,mask">
         
         	<msg name="required" key="err.user.pwd.required" />
		<msg name="maxlength" key="err.user.pwd.length" />
		<msg name="minlength" key="err.user.pwd.length" />
		<msg name="mask" key="err.user.pwd.invalid" />

		<arg name="maxlength" key="${var:minlength}" position="0" resource="false"/>
                <arg name="maxlength" key="${var:maxlength}" position="1" resource="false"/>

		<arg name="minlength" key="${var:minlength}" position="0" resource="false"/>
                <arg name="minlength" key="${var:maxlength}" position="1" resource="false"/>
            
                <var>
            	        <var-name>minlength</var-name>
			<var-value>7</var-value>
		</var>		
		<var>
			<var-name>maxlength</var-name>
			<var-value>15</var-value>
		</var>
                <var>
			<var-name>mask</var-name>
			<var-value>^[a-zA-Z0-9]*$</var-value>
		</var>
         </field>
         
         <field property="pwd2" depends="validwhen">
         
         	<msg name="validwhen" key="err.user.pwd2.notmatch" />
         
		<var>
			<var-name>test</var-name>
			<var-value>
				(pwd == *this*)
			</var-value>
		</var>
	 </field>

	<field property="email" depends="required,email">	 
	 	<msg name="required" key="err.user.email.required" />
	 	<msg name="email" key="err.user.email.invalid" />
	 </field>
		 
     </form>
  </formset>
</form-validation>

7.演示

http:// localhost:8080 / StrutsExample / RegisterUserPage.do

Struts-Validator-Example-1

http:// localhost:8080 / StrutsExample / Register.do

Struts-Validator-Example-2

验证码具有足够的描述性,以了解其工作原理,如果您想了解详细信息以及其他可用的验证器,请访问下面的参考网站。

参考

Struts验证程序文档– http://struts.apache.org/1.2.4/userGuide/dev_validator.html

翻译自: https://mkyong.com/struts/struts-validator-framework-example/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值