Struts2 結合 Ajax 實現非同步互動資料__stream

來源:互聯網
上載者:User
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。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.