基于Struts2的ajax的用法

  在做JavaWeb的时候遇到一个问题,addUser的form表单我想用ajax的方式进行提交,前台数据和用Servlet一样提交,但是后台数据怎么传过来呢。

首先复习一下ajax如何提交数据:

  $.ajax({
                type:"POST",
                url:"add.action",
                data: data + "&timeid=" + new Date() + "" + Math.random(),
                success:function(json){

        }
                  });

但是sussess之后我就不会写了,怎么能传过来呢

百度了一下,基于Struts2的ajax使用有两种方法:

  第一:用原生的方法,不依赖于任何插件。

    HttpServletResponse response = ServletActionContext.getResponse();  

    PrintWriter writer = response.getWriter();

    writer.print("hello "); 

    writer.flush(); 

    writer.close(); 

  第二:使用struts2-json-plugin,将jar包拷贝入WEB-INF/lib就可以了

使用这种方法要注意一下几个方面:

(1)Result的返回类型是json(@Result(name="addsuccess",type="json"))

(2)构造一个map去获取值和传递值  private Map<String,Object> map;  (注意要有get、set方法)

  map.put("result", "success");(你要传递的值)

在jsp里的ajax中这么用:

        success:function(json){
                                  if(json.map.result=="success")
                                      {
                                      alert("注册成功,请登录");
                                      window.location.href="init.action";
                                      }
                                  else
                                  {
                                      alert("注册失败");
                                      window.location.href="init.action";        
                                  }

原文地址:https://www.cnblogs.com/zmlion1995/p/5796656.html