validation客户端验证的问题
在struts 的验证里,要注意如下几点
<html:form action="/ createUser" onsubmit="return validateUserForm(this);">
格式为 return validate + formbean名称(首字母大写) + (this)用来在提交本页面时执行相应的js验证代码。
② 用来生成本页面的 js 验证代码。 有两种方法:
⑴ 在页面上声明
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<html:javascript formName="userForm" dynamicJavascript="true" staticJavascript="true"/>
因为dynamicJavascript/staticJavascript在JavascriptValidatorTag.java中默认为true,所以上面也可以直接写:<html:javascript formName="userForm"/>
注:在客户端执行的js验证如果不通过,会alert出对话框进行提示,服务器端的验证(在页面上可以用<html:errors/>来显示出错信息)就不会执行。
注意只有dynamicJavascript="true" + staticJavascript="true" 才能生成完整的 js 验证代码 ,如果把任何一个设为"false"提交页面时都会产生js错误,除非我们采用下面⑵的方法进行声明。
⑵ 在本页面上声明
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<html:javascript formName="userForm" dynamicJavascript="true" staticJavascript="false"/
<script language="Javascript1.1" src="staticJavascript.jsp"/></script>
定义staticJavascript.jsp的内容为
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<html:javascript dynamicJavascript="false" staticJavascript="true"/>
注:dynamicJavascript 表示是否在页面内生成动态的js,staticJavascript属性代表是否在页面内生成静态js。 如staticJavascript设为"true",则validator-rules.xml文件中的规则检查生成的js代码都会生成到本页面内。这样本页面会越来越大,一般最好是将staticJavascript设为"false", 将validator-rules.xml生成的js代码填充到一个指定的jsp页面(staticJavascript.jsp)中去。