<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    軟件是對質量的不懈追求

    struts2 親密接觸 json(json result type)

    最近使用jquery,ajax調用后臺服務非常需要一個json返回類型,網上只有一個可用的插件,叫jsonplugin 。但是測試了一下,兩個版本居然都有錯誤,而且通過文檔知道,它的使用還是相對復雜的,需要配置哪個對象需要轉換,那些對象不需要。不難想象,通常我們只需要將一個對象轉換成json格式,如果數據多,大不了都塞到一個對象里。
    這樣說起來,倒不如棄配置,轉而采用規則,規定action中如果需要為ajax提供服務器端服務,必須定義一個名字叫json的成員類,類型當然是最通用的Object。然后實現一個Result,在value stack中,找到名字叫json的對象,把它序列化成json串寫回客戶端就ok了。

      注意:如果json的實際類型是String,這個String必須符合json語法規范。Map List之類的就無所謂,直接用就是了

      Result代碼如下:

    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.Result;
    import com.opensymphony.xwork2.util.ValueStack;
    import net.sf.json.JSONObject;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.struts2.StrutsStatics;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;

    public class JSONResult implements Result {
       
        private static final Log log = LogFactory.getLog(JSONResult.class);

        
    public void execute(ActionInvocation invocation) throws Exception {
            ActionContext actionContext 
    = invocation.getInvocationContext();
           
            HttpServletResponse response 
    = (HttpServletResponse) actionContext
                    .get(StrutsStatics.HTTP_RESPONSE);

            
    try {
                String json;
                Object jsonObject;

                
    // generate JSON
               
                ValueStack stack 
    = invocation.getStack();
                jsonObject 
    = stack.findValue("json");
                json 
    = JSONObject.fromObject(jsonObject).toString();
               
                log.debug(json);
               
                response.setContentType(
    "text/xml;charset=utf-8");
                response.getWriter().write(json);

            } 
    catch (IOException exception) {
                log.error(exception.getMessage(), exception);
                
    throw exception;
            }
        }

    }
    struts配置如下:
      <result-types>
       
    <result-type name="json" class="JSONResult"/>
      
    </result-types>

    <action  >
        
    <result name="ajax" type="json" />
    </action>

    action部分代碼:
       

        
    private Object json;
        
    public Object getJson() {
            
    return json;
        }

        
    public void setJson(Object json) {
            
    this.json = json;
        }

    posted on 2009-05-14 15:20 BlakeSu 閱讀(5107) 評論(2)  編輯  收藏

    評論

    # re: struts2 親密接觸 json(json result type) 2011-06-15 00:53

    哈哈,謝謝吖!!!對幫助很大啊!!  回復  更多評論   

    # re: struts2 親密接觸 json(json result type) 2014-11-24 16:19 zhaobh

    很好啊  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 成人啪精品视频免费网站| 国产又大又粗又长免费视频| 国产精品国产自线拍免费软件| 亚洲手机中文字幕| 天天影视色香欲综合免费| 中文字幕亚洲精品资源网| 在线a免费观看最新网站| 亚洲国产精品日韩在线| 国产a视频精品免费观看| 亚洲一区二区三区高清视频| a毛片基地免费全部视频| 亚洲成a人片在线不卡一二三区| 日韩高清在线免费观看| 黄网站色视频免费看无下截| 不卡精品国产_亚洲人成在线| a毛片免费在线观看| 亚洲视频在线观看不卡| 噼里啪啦电影在线观看免费高清 | 四虎永久在线免费观看| 免费一区二区三区在线视频| 亚洲人成网站在线播放vr| 男人的天堂网免费网站| 亚洲国产成人精品激情| 日本免费一区二区三区最新| www免费黄色网| 亚洲人成依人成综合网| 成人性生活免费视频| 大片免费观看92在线视频线视频 | 在线亚洲精品福利网址导航| 香港a毛片免费观看 | 在线观看人成视频免费| 精品乱子伦一区二区三区高清免费播放| 日韩va亚洲va欧洲va国产| 免费A级毛片无码A∨中文字幕下载| 亚洲国产成人精品青青草原| 伊在人亚洲香蕉精品区麻豆| 日日麻批免费40分钟无码| 国产精品亚洲精品日韩动图| 香蕉视频在线观看亚洲| 在线观着免费观看国产黄| 一级毛片免费毛片一级毛片免费 |