struts2利用<s:filederror/>标签详细的控制错误消息输出格式

关键字: struts2 标签 fielderror 错误信息 格式

 

感想:前期在做项目时,碰到一个页面总是报500错误,而且后台又没有任何输出错误信息,很是郁闷,

经最后查证,原来是在struts进行字段验证时报的错,主要原因是我们的错误页面没有用标签捕获

各种异常信息,才导致很难定位错误所在。

 

首先请看如下代码:

 

<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的内容直接放在要显示消息的页面 )
Jsp代码 复制代码

 

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

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

message.jsp代码如下

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>      

   转载:http://selvemen.iteye.com/blog/451113

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值