【问题标题】:using struts 2 action for a simple ajax request使用 struts 2 操作进行简单的 ajax 请求
【发布时间】: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。

标签: java jquery ajax struts2


【解决方案1】:

我建议你在你的 Action 类中为 inputStream 类型 InputStream 和 public getter 和 setter 设置一个私有变量,这是缺失的。

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多