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