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

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。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值