validate客戶端驗證不起作用
要啟動客戶端驗證,必須將HTML標記庫的javascript標記放入在jsp頁面文件中,例如:<html:javascript formName="selectForm"/>.
而且要在form標簽中這樣寫<html:form action = "/selectAction.do"method = "post" focus="userId" onsubmit="return validateSelectForm(this);">
注意DynaValidatorForm(ValidatorForm)和DynaValidatorActionForm(ValidatorActionForm)的區別。前者主要的視角是formbean,而后者的視角是action。
當formbean被不同的action使用時,對于不同的action而言,使用的formbean的屬性集合有大有小。此時如果仍然以formbean為主體,會造成其他action的不正常使用。因此,struts中提出了DynaValidatorActionForm(ValidatorActionForm)。此時在validation.xml中的form標簽的name屬性改為action的path屬性,又由于action中有attribute和name屬性,validation框架就可根據這個action得到對應的formbean。
同時注意頁面文件的相應控件也要改為action的path屬性。例:<html:javascript formName="/selectAction"/>