您的位置:首页 > 编程语言 > Java开发

struts2 js弹出错误消息

2009-10-20 10:01 155 查看
<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>


另外还有一种方法直接在script代码中嵌入struts2标签:

struts2.0弹出验证
<!--用javascript验证  -->
<s:if test="hasFieldErrors()">
<script language="JavaScript">
var msg = '';
<s:iterator value="fieldErrors">
<s:iterator value="value">
msg=msg+'<s:property/>'+'/n';
</s:iterator>
</s:iterator>
alert(msg);
</script>
</s:if>
<!--用javascript验证  -->
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: