Struts2:stream和json類型的返回

Action代碼片段

public class AjaxAction extends ActionSupport{
    private User user;
    private InputStream result;
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
    public InputStream getResult() {
        return result;
    }
    public void setResult(String resultStr) {
        try{
            this.result=new ByteArrayInputStream(resultStr.getBytes("UTF-8"));
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }
    public String getStream(){
        this.setResult("success");
        return SUCCESS;
    }
    public String getJson(){
        user=new User("1","sisu");
        return SUCCESS;
    }
}

struts.xml配置

    <package name="ajax" extends="json-default"><!-- 繼承json-default -->
        <action name="getStream" class="com.action.AjaxAction" 
            method="getStream">
            <result name="success" type="stream">
                <param name="contentType">text/html</param>
                <param name="inputName">result</param>
            </result>
        </action>
        <action name="getJson" class="com.action.AjaxAction" 
            method="getJson" >
            <result name="success" type="json">
                <param name="root">user</param>
                <param name="noCache">true</param>
            </result>
        </action>
    </package>

頁面js代碼

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>struts的ajax應用</title>
    <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
    <script type="text/javascript">
    $(function(){
        $(".getstream-btn").click(function(){
            $.ajax({
                url:"getStream",
                type:"GET",
                success:function(data){
                    alert(data);
                }
            });
        });
        $(".getjson-btn").click(function(){
            $.ajax({
                url:"getJson",
                type:"GET",
                success:function(data){
                    alert(JSON.stringify(data));
                }
            });
        });
    });
    </script>
  </head>

  <body>
    <a href="javascript:void(0);" class="getstream-btn">獲取stream類型返回結果</a><br/>
    <a href="javascript:void(0);" class="getjson-btn">獲取json類型返回結果</a>
  </body>
</html>

返回json結果時注意導入json插件:struts2-json-plugin-xxx.jar

發佈了31 篇原創文章 · 獲贊 37 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章