在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)中去。