struts2如何实现弹出action返回的错误信息。

我想的是在action里设置一个变量message存储错误提示信息,并设置了get() set()方法,在页面的js里如何获得action传递过去的值啊,我打算在js里定义一个变量接受action传递过来的参数,然后用alert提示框把值弹出来,该怎么做啊?

方法1:
在跳转的页面写入如下代码:
<script type="text/javascript">
//错误提示信息
var msg=""+'${request.tipMessage}';
if(msg!=""){
alert(msg);
}
//-->
</script>
在对应的action中写入如下代码:
message = "课程已结束无法报名!";
request.setAttribute("tipMessage", message);
这样就完成了。

方法2:
直接在action中写入如下代码:
PrintWriter outjs = response.getWriter();
outjs.print("<script>alert('成功');window.location.reload();</script>");
return null;
首先,response.getWriter()需要try,catch;而且有编码问题。
window.location.reload();如果发现页面一直刷新不跳转;请把这句话去掉。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-12
var mes='${message}' ;
alert(mes);追问

这样也不行啊,提示undefined

追答

你message值传到页面了么?
var mes = ""+'${message}';
if(mes!=""){
alert(mes);
}试试

追问

还是不行的,这样弹出的是message,没有别的。

追答

不会吧!如果没值的话应该弹出空的,var mes = ""+'${request.message}';你改成这样试试

追问

不是的啊,那个引号一起来的话肯定是弹出引号内部的内容啊,我的那个message信息没有保存到request对象中去,是在action中定义的message,然后设了get set方法。

追答

$是个转义符啊,你不会这个符号也能弹出来吧?在action中定义的message就是放在request对象中的,你在JSP中用request对象也可以获取到的。

追问

不放request里面可以吗?如果放request里面的话就意味着我每个要弹出错误的地方都要把那个错误信息塞到request作用域中,那样的话工作量会恨到的,我想的是不塞到那个作用域中,直接get set之后,在页面取这个值。

追答

web开发就是要通过request这些作用域把数据动态的传给客户端啊。
struts2里的Action的成员变量就可以传给JSP信息,不需要显示的把那个错误信息塞到request作用域中,在页面就可以取这个值。struts2把request对象封装起来了。你给页面传值的时候不是也是用这种成员变量么。

追问

我的意思是不用在每个要传message的地方设置request.setAttribute()然后赋值进去,每个页面再来个request.getAttribute()取值,然后赋给变量,然后弹出变量。

追答

我没说要这样写啊。struts2都是用成员变量传值的,现在是你要在JS代码里获取到ACTION的值啊,var mes = ""+'${request.message}';中的request只是指定下作用域,action里代码不用改的

追问

那在action里要把我要传的参数set到request作用域中吗?

追答

不用,成员变量就可以了,要有get方法

追问

好的,谢谢了。

本回答被提问者和网友采纳
第2个回答  2011-11-21
0
相似回答