Struts2客户端验证而不使用动作类

时间:2014-02-04 09:00:53

标签: validation struts2

只需要使用validation.xml在struts2中进行客户端验证,但我的bean在bean类中。 validation.xml仅支持基于操作类的验证。

我需要客户端验证而不使用javascript或任何验证方法。

1 个答案:

答案 0 :(得分:0)

Struts Validator Framework提供了一种易于使用的机制,用于执行客户端验证。

对于validation-rules.xml文件中定义的每个验证例程,Struts提供了一个可选的JavaScript代码,可以在客户端运行,以执行在服务器端进行的相同验证。

LoginForm扩展了DynaValidatorForm

<form-bean name="LoginForm" type="org.apache.struts.validator.DynaValidatorForm">
    <form-property name="userName" type="java.lang.String" />
    <form-property name="password" type="java.lang.String" />
</form-bean>

以下验证在validation.xml文件中定义。

<form name="LoginForm">
    <field property="userName" depends="required">
        <arg key="LoginForm.userName"/>
    </field>
    <field property="password" depends="required,minlength">
        <arg0 key="LoginForm.password"/>
        <arg1 key="${var:minlength}" name="minlength" resource="false"/>
        <var>
            <var-name>minlength</var-name>
            <var-value>6</var-value>
        </var>
    </field>
</form>

要启用客户端验证,您必须在每个jsp页面中放置Struts HTML标记库的javascript标记,您需要为其执行客户端验证。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JS Validation</title>
</head>
<body>
    <html:form action="/Login" onsubmit="validateLoginForm(this);">>
        <html:javascript formName="LoginForm" />
        User Name : <html:text name="LoginForm" property="userName" /> 

        Password  : <html:password name="LoginForm" property="password" /> 

        <html:submit value="Login" />
    </html:form>
</body>
</html>