zoukankan      html  css  js  c++  java
  • 在使用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字符
  • 相关阅读:
    ICQ
    Create小程序
    LRU最近最少使用算法
    感知器
    聚类-K均值
    阈值分类法
    最邻近分类
    设计模式
    高级排序算法
    Socket编程
  • 原文地址:https://www.cnblogs.com/zmlion1995/p/5794890.html
Copyright © 2011-2022 走看看