通過Struts 1.2提供的validwhen 驗證器可以輕松的創建更加復雜靈活的表單驗證。
比如說,我們要驗證用戶兩次輸入的密碼是否相同,或是只有當用戶填寫表單項“姓氏”時,表單項“名字”才是必須的。
validwhen 需要聲明一個叫test的var字段,這個變量的值是一個布爾型的表達式,比如:
當布爾型表達式返回true時,驗證才會成功。下邊是允許發入該表達式的一些元素:
單引號或雙引號括起來的字符串十進制、十六進制或八進制表示的整形字面量null 表示沒有輸入的空串可以使用表單裡的任何字段名字,如 customerAge顯式引用的索引字段,如childLastName[2]隱式引用的索引字段,如childLastName[],表示使用與該字段相同的索引字面量 *this* 表示當前被驗證的表單
例:
下邊這段代碼表示:只有當sendNewsletter字段為空,或該字段emailAddress不為空時,該字段才有效
下邊這個例子表示,只有相應的partNumber存在時,字段quantity才是必須的
下邊這個例子表示,如果輸入身高小於60英寸,則不能做nbaPointGuard