我正在尝试学习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更好的方法?
答案 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
}
}
}