交换机密码恢复
2010-07-14 19:39
337 查看
首先请看如下代码:
这样当有field错误,就会弹出错误提示!当然不alert的话 也可以在外面之间套上div,控制输出格式
但问题来了 如果有多个field错误 就会不断地弹出消息窗口
我想把所有的错误消息全部显示在一个对话框中 每条错误消息占一行
怎么才能做到呢?
经过很长时间的摸索 问题终于给解决了 现在把它分享出来
在需要显示消息的页面加入message.jsp
(或者把message.jsp的内容直接放在要显示消息的页面 )
最好把它放在页面最后 等页面全部加载后 再显示消息
要不然 加在前面的话就可能看到页面空白 消息提示显示完成后再显示页面
message.jsp代码如下
<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>