【发布时间】:2012-08-26 02:33:33
【问题描述】:
我正在尝试使用 AJAX 发出一个简单的请求。但整个事情都行不通。下面是我写的代码
jsp/javascript:
$("#my_"+rowNum).load("getdata.action?id="+123,function(data) {
alert("i am inside "+data);
});
Struts 动作:
public class MyAction extends BaseAction {
public String execute() {
try {
inputStream = new ByteArrayInputStream("ABC 123 556".getBytes("UTF-8"));
}
catch (UnsupportedEncodingException e) {
//handle exception
}
return SUCCESS;
}
}
struts.xml:
<action name="getdata" class="com.amtd.advisoradmin.action.MyAction">
<result type="stream">
<param name="contentType">text/html</param>
<param name="inputName">inputStream</param>
</result>
我觉得配置是正确的,但是在控件从 Action 类返回后,我没有收到我在 jsp 中打印的警报。我错过了什么吗?
PS : ABC 123 556 是我需要在警报中获取的数据。
【问题讨论】:
-
是否有特定原因为什么您流式传输数据而不只是返回 JSON 编码,例如?当您自己调用该操作(即直接从浏览器调用)时,您会得到什么?
-
我只是返回一个文本。所以我决定不作为json返回。控件从 Action 类正常运行和返回。
-
嗯,应该可以按原样返回文本。在这种情况下,它会像 HTML 一样被对待。我宁愿尝试保持简单而不增加流结果等额外的复杂性。顺便说一句,你为什么不使用 jQuery 的
ajax函数? -
inputStream更多的是用于下载视角,而不是 Ajax 的典型示例,是的,它可以使用简单的 Jquery 来完成。 -
我在最新的 S2 wiki 中添加了一条注释,指出使用流结果并不是真正的首选机制;谢谢@UmeshAwasthi。