用于处理Jquery post / get / ajax调用中的Struts 2 Actions的正常模式

时间:2011-08-17 14:39:30

标签: struts2

我知道我在这里缺少一些概念性的东西而且它一直在绊倒我,但我会提出一个用例,并希望得到最佳实践回应。

       $.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的页面部分的其他一些方法是:

  1. document.all[0].innerHTML = data

  2. ${'#someRandomSection'}.html(data)

  3. 但它们都没有捕获传递给我们的完整内容。那么显示DispatcherResult结果的正确方法是什么,即传递给我们的整个jsp页面?我有一些涉及此页面的javascript,并且使用我在上面的用例中提供的方法无法正确呈现。

1 个答案:

答案 0 :(得分:0)

首先,你传递数据的方式是不正确的..看起来你传递它好像它是一个查询字符串..你需要将它改为:

data: {
pageSource:list_edit_add,
table:table,
output:output,
selectedIds: json_text
}

,您需要指定dataType

dataType: "html".

你能为你的页面设置一个jsfiddle ..