使用ajax请求对象并处理它们

时间:2014-05-14 12:51:00

标签: java javascript jquery html ajax

我正在尝试学习Ajax部分页面呈现。

到目前为止,我设法请求一个String并在页面中写入它。现在我试图请求一个物体,我被卡住了。

让我说我在我的Ajax控制器中有这个

MyClass obj = new MyClass();
obj.setA("Content of A");
obj.setB("Content of B");
obj.setC("Content of C");
PrintWriter out = response.getWriter();

将实例发送到ajax请求的好方法是什么?

我的Ajax脚本如下所示:

function getData(){
    // .. //
    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) {
            if (xmlHttp.status == 200) {

                document.getElementById("result").style.display='block';
                // How to handle xmlHttp response ?
            }
        }
    }
    xmlHttp.open("GET", "/index2", true);
    xmlHttp.send(null);
}

在我的HTML中我应该得到这个:

<div id="result" style="display:none">
    <a href="obj.A">
        obj.B
    </a>
</div>

我知道你不能请求MyClass实例,但是我听说你可以请求xml或table,我怎么能以xml或table格式转换我的MyClass实例,我怎么能在我的ajax响应处理程序中处理它?有没有比我的xml ideea更好的方法?

2 个答案:

答案 0 :(得分:2)

当你导出对象时,我建议使用json格式(xml也是可能的,但使用javascript处理起来要困难得多)

您可以看到此主题以了解如何将Java对象转换为JSON:convert java object to json and vice versa

答案 1 :(得分:1)

属性responseText包含回复

xmlHttp.onreadystatechange = function () 
{
   if (xmlHttp.readyState == 4) 
   {
      if (xmlHttp.status == 200) 
      {
          document.getElementById("result").style.display='block';
          var response = JSON.parse(xmlHttp.responseText);
         // precess response
      }
   }
}