struts2利用等标签详细地控制错误消息输出格式

首先请看如下代码:

    <s:if test="hasFieldErrors()">  
    <s:iterator value="fieldErrors">  
         <s:iterator value="value">  
             <script language="JavaScript">  
                 alert('<s:property/>');  
             </script>     
         </s:iterator>    
    </s:iterator>  
    </s:if> 



这样当有field错误,就会弹出错误提示!当然不alert的话 也可以在外面之间套上div,控制输出格式
但问题来了 如果有多个field错误 就会不断地弹出消息窗口
我想把所有的错误消息全部显示在一个对话框中 每条错误消息占一行
怎么才能做到呢?

经过很长时间的摸索 问题终于给解决了 现在把它分享出来

在需要显示消息的页面加入message.jsp
(或者把message.jsp的内容直接放在要显示消息的页面 )

    <s:include value="message.jsp"></s:include> 


最好把它放在页面最后 等页面全部加载后 再显示消息
要不然 加在前面的话就可能看到页面空白 消息提示显示完成后再显示页面

message.jsp代码如下

    <%@ page language="java" contentType="text/html; charset=GB18030"  
         pageEncoding="GB18030"%>   
    <%@ taglib prefix="s" uri="/struts-tags"%>   
    <html>   
        <body>   
             //fielderror   
         <s:if test="hasFieldErrors()">   
             <s:iterator value="fieldErrors">   
                 <s:iterator value="value" status="statu">   
                    //field的错误消息是List 因此还需要迭代一次        
                     <s:set name="index" value="#statu.index"/>   
                     <s:set name="msg" value="#msg==null?'':#msg+   
                     value.get(#request.index).toString()+'\\\n'"/>//关键代码   
                  </s:iterator>   
             </s:iterator>   
         </s:if>   
      
             //actionerror   
         <s:if test="hasActionErrors()">   
             <s:iterator value="actionErrors">   
                    <script   language="JavaScript">   
                     alert("<s:property escape="false"/>")   
                    </script>   
                 </s:iterator>   
         </s:if>   
      
             //actionmessage   
         <s:if test="hasActionMessages()">   
             <s:iterator value="actionMessages">   
                 <script language="JavaScript">   
                     alert("<s:property escape="false"/>")   
                 </script>   
             </s:iterator>   
          </s:if>   
      
             //打印转换好格式的fielderror信息   
         <s:if test="#msg.length()>0">   
             <script language="JavaScript">   
                 alert("<s:property escape="false" value="#msg"/>")   
             </script>   
         </s:if>   
         </body>   
    </html>  

你可能感兴趣的:(html,jsp,struts)