Struts2 结合 Ajax 实现异步交互数据

来源:互联网 发布:java返回页面 编辑:程序博客网 时间:2024/05/16 19:41

struts2使用ajax

与文件下载类似,在struts.xml 需要配置的结果类型为stream。

<package name="default" namespace="/" extends="struts-default">    <action name="XXX" class="XXXAction" method="do()">    <result type="stream" name="success">        <param name="contentType">text/html</param>        <param name="inputName">inputStream</param>    </result></package>

注意两个属性contentType 和 inputName,
其中inputName 对应的值 inputStream 为在Action中的属性。
其他配置为一般配置,没有什么差异。
下面来看Action中配置

public class XXXAction extends ActionSupport{    private InputStream inputStream;    //需要提供set方法    public InputStream getInputStream() {        return inputStream;    }    public String do() {        try {            //此处填写业务代码            ....            //            inputStream = new ByteArrayInputStream("1".getBytes("UTF-8"));        } catch (Exception e) {            e.printStackTrace();        }        return "success";    }}

在jsp中可以使用JQuery的ajax方法 异步来调用action中方法

$(function(){    //按钮单击事件    $(".btn").click(function(){        var url = this.href;        var args = {"time":new Date()};        //jquery的ajax方法        $.post(url, args, function(data){            //此为回调函数,在函数中处理action中返回的数据            //也就是inputStream 对应的值        });     });     })

基本使用就是这样,如果涉及到传递对象或者集合,建议采用json 结合ajax。
后台action将数据封装成json对象传递。可以借助第三方插件或者struts自带的
json-plugin。

0 0