如何在display:table中从Result中获取输入流?

时间:2014-03-19 09:15:38

标签: java jquery struts2 stream struts2-jquery

我有一个动作,以这些行结束:

String pageVisitJson = new Gson().toJson(pageVisitLogList);
is = new ByteArrayInputStream(pageVisitJson.getBytes());
return SUCCESS;

此行动的结果是:

@Results({
    @Result(name=ActionSupport.SUCCESS , type="stream", params={"contentType", "text/html", "inputName", "is"}),
    @Result(name=ActionSupport.SUCCESS, type="tiles", location="/pageVisitReport.tiles")
})

pageVisitReport.tiles是我需要使用display标签显示表格的页面。现在,如何在显示标记中访问输入流is。我的@Result不正确还是还有别的?显示表将进一步由jQuery处理。

每当调用我的动作时,它只会在一个简单的页面上显示所有记录。

1 个答案:

答案 0 :(得分:0)

每个操作配置的结果名称属性应该是唯一的,因此操作可以返回此结果。

使用stream结果类型需要为inputName参数引入的流提供getter。

返回的内容类型为text/html,因此您需要通过javascript解析此文本。您可以使用JSON.parse(data)。如果您通过提供映射到操作的URL向data服务器发出Ajax请求,则$.ajax()将可用。在success函数处理程序中,您将获得data

有关如何使用stream结果vs json结果将json字符串返回给客户端javascript的差异和说明,请参阅this answer。