只需要使用validation.xml在struts2中进行客户端验证,但我的bean在bean类中。 validation.xml仅支持基于操作类的验证。
我需要客户端验证而不使用javascript或任何验证方法。
答案 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>