Struts Validation
在Form中設置valiate方法實現表單中元素的檢驗:

Form
???public?ActionErrors?validate(
????????????ActionMapping?mapping,
????????????HttpServletRequest?request)?{
????????????????
????????ActionErrors?errors?=?new?ActionErrors();
????????????????
????????if(getName().equals("")){
????????????errors.add(ActionMessages.GLOBAL_MESSAGE,
????????????????new?ActionMessage("login.error.name.required"));
????????}
????????????????
????????if(getPassword().equals("")){
????????????errors.add("passError",new?ActionMessage("login.error.password.requrired","str"));
????????}
????????????????
?????????return?errors;
????}????? ?
?????? 在form中,如果有ActionErrors錯誤,會自動回到輸入見面。
?????? 將錯誤信息返回的方法,如下:

Jsp
????<html:messages?id="msg"?property="passError">??---?無?property?默認輸出所有錯誤信息
??????????<bean:write?name="msg"/>
????</html:messages>
????
????其中,html:message?替代?html:errors
????<html:errors/>
Action
????if(!"no1red".equals(name)){
????????ActionMessages?messages?=?new?ActionMessages();
????????messages.add("nameMessages",new?ActionMessage("login.error.name.match"));
????????messages.add(ActionMessages.GLOBAL_MESSAGE,new?ActionMessage("login.error"));
????????saveMessages(request,messages);
????????request.setAttribute("nameMatch",?messages);
????????return?mapping.findForward("fail");
????}
????return?mapping.findForward("succ");Jsp:
??? 第一種用saveMessages的方法,在頁面中顯示錯誤信息:
??? saveMessages(request,messages);


????<html:messages?message="true"?id="msg"?property="nameMessages">
????????<%=?pageContext.getAttribute("msg")?%>??????????
????</html:messages>
????
????property?的名稱?nameMessages?和?Action?中的?nameMessages?向對應。????
????或者將?<%=?pageContext.getAttribute("msg")?%>?用?<bean:write?name="msg"/>?來替代。
????
????<html:messages?id="msg"?message="true">??----?輸出所有錯誤消息
?????????<bean:write?name="msg"/>?????
????</html:messages>?? ?
??? 第二種方法,用request.saveAttribute:
?? ?
??? request.setAttribute("nameMatch", messages);
?? ?


????<logic:messagesPresent?name="nameMatch">
?????????<table?border="1"?bgcolor="yellow"?width="100%"?align="center"><tr><td>
????????????<p>
????????????????<img?src="/images/icon-warning.gif"?border="0"
??????????????????vspace="2"?hspace="10"?align="center">
????????????????<bean:message?key="warnings.heading"/>
????????????</p>????
????????????<ul>
????????????????<html:messages?id="error"?name="nameMatch">
???????????????????<li><bean:write?name="error"/></li>
????????????????</html:messages>
????????????</ul>
????????</td></tr></table>
????????<p>
???</logic:messagesPresent>?? ?