• 在使用Strus2中遇到的一些问题


    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字符
  • 相关阅读:
    23、Linux实操篇——RPM与YUM
    22、Linux实操篇——进程管理(重点)
    21、Linux实操篇——网络配置
    20、Linux实操篇——磁盘分区、挂载
    19、Linux实操篇——组管理和权限管理
    18、实操篇——实用指令
    17、实操篇——用户管理
    UVALive 2521 Game Prediction 题解
    UVALive 2517 Moving Object Recognition(模拟)
    UVALive 2324 Human Gene Functions(动态规划)
  • 原文地址:https://www.cnblogs.com/zmlion1995/p/5794890.html
Copyright © 2020-2023  润新知