1.想用Struts2完成提示信息的操作,比如用户登录页面,登录成功提示“登陆成功”,失败则提示“用户名或密码错误,请重新输入”
这个时候要考虑使用PrintWriter out = response.getWriter();
out.println(<script>alert("登陆成功");</script>);
但是此时,out.println()里可以写window.location.href="";即可以跳转,这时与Struts2里的注解跳转页面冲突,这两个只会执行一个,(能弹出信息就不会跳转,能跳转就不会弹出信息)(可以只使用out方法,但是我想用注解=-=)
接下来考虑request
Struts2中使用response、request、session的方法是:1.与Servlet API的解耦访问 2.与Servlet API的耦合访问方式
我用的是第一种方式: Struts2框架对Servlet API中的HttpServletRequest、HttpSession和ServletContext进行了封装,构造了三个Map对象来替代这三种对象。可以利用com.opensymphony.xwork2.ActionContext类获取Servlet API对象对应的Map对象。
*ActionContext是action执行的上下文。
Map<String,Object> request=(Map<String,Object>)ActionContext.getContext().get("request");
Map<String,Object> response=(Map<String,Object>)ActionContext.getContext().get("response");
Map<String,Object> session=ActionContext.getContext().getSession();
接下来就可以用request传递你要提示的信息了。
if(flag==true) //在这里犯了一个低级错误,在if里一定是双等号,要不就成了赋值了
{
request.put("msg", "登录成功");
result = "success";
}else {
request.put("msg", "用户名或密码错误,请重新输入!");
}
然后在相对应的jsp页面里取值,
var m = "${requestScope.msg}"; //这里好像加上了双引号就直接把object转成了字符串,我也不知道咋回事,但是可以正常运行
alert(m);
2.继续上一个问题, object是不能直接alert()的,这时候需要把object转换为String(这个我没用过,研究好了再来说w(?Д?)w)
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象 var last=obj.toJSONString(); //将JSON对象转化为JSON字符 或者 var last=JSON.stringify(obj); //将JSON对象转化为JSON字符