Struts2结合 Ajax 和 json开发项目

来源:互联网 发布:js改变div属性 编辑:程序博客网 时间:2024/05/21 08:43

首先要下载struts2 和json 包,然后在myeclipse 里面创建个web项目;

下面是json的下载地址:

http://sourceforge.net/projects/json-lib/files/

使用json 之前要阅读下面的文档,注意一下包也要用:

  • jakarta commons-lang 2.5
  • jakarta commons-beanutils 1.8.0
  • jakarta commons-collections 3.2.1
  • jakarta commons-logging 1.1.1
  • ezmorph 1.0.6

上面这些包可以从下载的struts 的lib下面copy;

除了这些包还有struts2 要用的一些包,不重复就行;

注意:用Ajax 访问 struts2action时,只需要,ajax发送请求的时候url写成action的名字;

这里是action的配置:

<action name="getJsonAction" class="com.tf.zhpp3.test.EntryAction"
            method="getJsonData">
        </action>


下面是前台ajax代码:

<script type="text/javascript">
    var d2 = document.getElementById("test2");
    function get(url,data){
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange=function(){
            if(xhr.readyState == 4 && xhr.status == 200){
                console.log(xhr.responseText);    
            }        
        };
        xhr.open("get",url,true);
        xhr.send(null);        
    }

    d2.onclick = function(){
        url = "getJsonAction?weekID=201305";    
        get(url,null);
    };    
  </script>

接下来是java代码:

    public String getJsonData() throws IOException {
        testListToJSON();
        // 获得response
        HttpServletResponse response = ServletActionContext.getResponse();
        HttpServletRequest request = ServletActionContext.getRequest();
        String weekId = (String) request.getParameter("weekID");
        
        // 设置输出UTF-8编码
        response.setCharacterEncoding("UTF-8");

        // 获得输出流
        PrintWriter pw = response.getWriter();
        // 将数据写入输出流
        //pw.write(jsonArray.toString()+ "your action param is " + weekId);
        pw.write(testBeadToJSON().toString());
        // 清楚数据流缓冲区
        pw.flush();
        // 关闭输出流
        pw.close();
        return SUCCESS;
    }