我知道我在这里缺少一些概念性的东西而且它一直在绊倒我,但我会提出一个用例,并希望得到最佳实践回应。
$.ajax({
type: "POST",
url: "/myapp/FilterRecord.action",
data: "pageSource=list_edit_add&table=" + table + "&output=" + output + "&selectedIds=" + json_text,
success: function(data) {
document.close();
document.open();
document.write(data);
}
});
在这种情况下,正在调用jquery的ajax方法。正在使用默认结果类型执行Struts 2操作,即Dispatcher Result。在Action.SUCCESS上,输入上面的成功函数。传入的数据是一个完整的jsp页面,头部和主体。在上面的代码中,我们以一种不一定要用于的方式操纵document.write()。以上的目的是获得头部和身体部分。设置jquery的页面部分的其他一些方法是:
document.all[0].innerHTML = data
${'#someRandomSection'}.html(data)
但它们都没有捕获传递给我们的完整内容。那么显示DispatcherResult结果的正确方法是什么,即传递给我们的整个jsp页面?我有一些涉及此页面的javascript,并且使用我在上面的用例中提供的方法无法正确呈现。
答案 0 :(得分:0)
首先,你传递数据的方式是不正确的..看起来你传递它好像它是一个查询字符串..你需要将它改为:
data: {
pageSource:list_edit_add,
table:table,
output:output,
selectedIds: json_text
}
,您需要指定dataType
dataType: "html".
你能为你的页面设置一个jsfiddle ..