Struts hasFieldErrors() and hasActionMessages

 首先請看以下代碼:
  1. <s:if test="hasFieldErrors()">   
  2. <s:iterator value="fieldErrors">   
  3.      <s:iterator value="value">   
  4.          <script language="JavaScript">   
  5.              alert('<s:property/>');   
  6.          </script>      
  7.      </s:iterator>     
  8. </s:iterator>   
  9. </s:if>  
  1. <s:if test="hasFieldErrors()">  
  2.  <s:iterator value="fieldErrors">  
  3.   <s:iterator value="value">  
  4.    <script language="JavaScript">  
  5.     alert('<s:property/>');  
  6.    </script>     
  7.   </s:iterator>    
  8.  </s:iterator>   
  9.  </s:if>  


這樣當有field錯誤,就會彈出錯誤提示!固然不alert的話 也能夠在外面之間套上div,控制輸出格式
但問題來了 若是有多個field錯誤 就會不斷地彈出消息窗口
我想把全部的錯誤消息所有顯示在一個對話框中 每條錯誤消息佔一行
怎麼才能作到呢?

通過很長時間的摸索 問題終於給解決了 如今把它分享出來

在須要顯示消息的頁面加入message.jsp
(或者把message.jsp的內容直接放在要顯示消息的頁面 )
  1. <s:include value="message.jsp"></s:include>  
  1. <s:include value="message.jsp"></s:include>  

最好把它放在頁面最後 等頁面所有加載後 再顯示消息
要否則 加在前面的話就可能看到頁面空白 消息提示顯示完成後再顯示頁面

message.jsp代碼以下
  1. <%@ page language="java" contentType="text/html; charset=GB18030"  
  2.      pageEncoding="GB18030"%>   
  3. <%@ taglib prefix="s" uri="/struts-tags"%>   
  4. <html>   
  5.     <body>   
  6.          //fielderror  
  7.      <s:if test="hasFieldErrors()">   
  8.          <s:iterator value="fieldErrors">   
  9.              <s:iterator value="value" status="statu">   
  10.                 //field的錯誤消息是List 所以還須要迭代一次       
  11.                  <s:set name="index" value="#statu.index"/>   
  12.                  <s:set name="msg" value="#msg==null?'':#msg+   
  13.                  value.get(#request.index).toString()+'\\\n'"/>//關鍵代碼  
  14.               </s:iterator>   
  15.          </s:iterator>   
  16.      </s:if>   
  17.   
  18.          //actionerror  
  19.      <s:if test="hasActionErrors()">   
  20.          <s:iterator value="actionErrors">   
  21.                 <script   language="JavaScript">   
  22.                  alert("<s:property escape="false"/>")   
  23.                 </script>   
  24.              </s:iterator>   
  25.      </s:if>   
  26.   
  27.          //actionmessage  
  28.      <s:if test="hasActionMessages()">   
  29.          <s:iterator value="actionMessages">   
  30.              <script language="JavaScript">   
  31.                  alert("<s:property escape="false"/>")   
  32.              </script>   
  33.          </s:iterator>   
  34.       </s:if>   
  35.   
  36.          //打印轉換好格式的fielderror信息  
  37.      <s:if test="#msg.length()>0">   
  38.          <script language="JavaScript">   
  39.              alert("<s:property escape="false" value="#msg"/>")   
  40.          </script>   
  41.      </s:if>   
  42.      </body>   
  43. </html> 
相關文章
相關標籤/搜索