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

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

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

    JAVA—咖啡館

    ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

    為了方便ajax調用傳輸數據,在struts2中加入的json插件用來做對象的序列化和反序列化,json插件的下載地址

    http://code.google.com/p/jsonplugin/

    1. 下載json插件包,將jar包拷貝到WEB-INF/lib目錄

    注:struts2的json插件有兩個版本0.32和0.34,我用的struts2的版本是2.0.11,在加入0.34版本json插件時啟動發生異常,提示找不到相關方法,后來就換成了低版本的0.32一切OK,仔細查看文檔后發現struts2的2.0.*版本的對應插件的0.32版本,struts2.1.*版本對應0.34版本

     

    2.json插件執行原理時序圖

     

    3.將struts.xml里面的


    1<package name="default" extends="struts-default"> 

     

      改為

    1<package name="default" extends="json-default">  

     

    4.Action中的配置

    1<action name="testAction" class="com.json.action.TestAction" method="testMethod">   
    2    <interceptor-ref name="json" /><!--處理以JSON文本提交的請求-->   
    3    <result type="json" /> <!--將action的bean屬性以json字符串返回瀏覽器-->   
    4</action>   

       注:根據需要選擇interceptor和result配置

     

    5. 你會發現前臺返回的json字符串,是把action中的所有屬性全部轉化為json字符串返回給瀏覽器了,但是我有時候需要根據實際情況返回部分結果,如何對json的結果進行定制輸出呢?result提供了一些參數替你解決這個問題

      5.1. root參數:從返回結果中根據ognl表達式取出你需要輸出的結果

             如:

        action類

    public class BaseAction extends ActionSupport implements  {    
        
    private Person person = null;    
                        
    }
       

        bean類  

    1public class Person {    
    2    private String name;    
    3    private int age;    
    4        
    5}
      

        我們只要輸出person對象的name屬性值,配置如下

    1<result type="json">
    2<param name="root">person.name</param>
    3</result>

     

      5.2. excludeNullProperties 參數:表示是否去掉空值, 默認值是false,如果設置為true會自動將為空的值過濾,只輸出不為空的值。

    1<result type="json">   
    2    <param name="excludeNullProperties">true</param>   
    3</result>   
    4

     

      5.3. ignoreHierarchy 參數:表示是否忽略等級,也就是繼承關系,比如:TestAction繼承于BaseAction,那么TestAction中返回的json字符串默認是不會包含父類BaseAction的屬性值,ignoreHierarchy值默認為true,設置為false后會將父類和子類的屬性一起返回。

    1<result type="json">   
    2    <param name="ignoreHierarchy">false</param>   
    3</result>   

     

      5.4. includeProperties 參數:輸出結果中需要包含的屬性值,這里正則表達式和屬性名匹配,可以用“,”分割填充多個正則表達式。

       如:輸出person的所有屬性 

    1<result type="json">   
    2    <param name="includeProperties">person.*, person\.name</param>   
    3</result>   

     

      5.5. excludeProperties 參數:輸出結果需要剔除的屬性值,也支持正則表達式匹配屬性名,可以用“,”分割填充多個正則表達式,類同4.4.

    posted on 2010-01-26 11:36 rogerfan 閱讀(19263) 評論(7)  編輯  收藏 所屬分類: 【開源技術】

    Feedback

    # re: struts2的json插件配置詳解(附demo) 2012-08-17 09:56 linyi
    很感謝你的這篇文章,讓我明確了我遇到的問題出在哪里。
    麻煩你看一下我這個情況應該怎么配置。

    Action中有一個屬性是 List<Person> personList ;

    若是讓struts的json插件來把這個對象轉換為json格式,會出現懶加載問題,因為personList是Person對象的集合,而person對象中有一個屬性是Cars的一對多關聯關系,所以在轉換為json格式的時候cars這個屬性值是無法提取出來的,因為在轉換的時候session已經關閉了,而且也沒有必要提取出來,所以我的問題是如何配置可以讓json插件轉換json格式的時候忽略 personList集合中Person對象的 cars屬性!

    請你幫我看看,謝謝了!  回復  更多評論
      

    # re: struts2的json插件配置詳解(附demo) 2012-09-05 10:45 Baiyin
    非常好,看了很多都沒看懂。讀您這篇明白了。  回復  更多評論
      

    # re: struts2的json插件配置詳解(附demo) 2012-12-19 22:24 阿丘
    非常感謝樓主的筆記,非常的感謝!寫的非常的詳細,為我在項目中這個點的知識明朗了很多!非常感謝!  回復  更多評論
      

    # re: struts2的json插件配置詳解(附demo) 2013-04-12 20:00 王悠揚
    <param name="ignoreHierarchy">false</param>
    解決了我的問題,感謝博主!  回復  更多評論
      

    # re: struts2的json插件配置詳解(附demo) 2013-05-03 10:56 張西健
    樓主威武  回復  更多評論
      

    # re: struts2的json插件配置詳解(附demo) 2014-05-27 22:09 劉少寒
    @linyi你先全部提取出來。  回復  更多評論
      

    # re: struts2的json插件配置詳解(附demo)[未登錄] 2015-10-03 17:28 hello
    @linyi
    我也有這樣的問題,你解決了嗎,雖然幾年了  回復  更多評論
      

    主站蜘蛛池模板: 国内大片在线免费看| 色欲国产麻豆一精品一AV一免费 | 亚洲国产电影在线观看| 成人片黄网站色大片免费观看APP| 亚洲精品无码久久久久AV麻豆| 免费无遮挡无遮羞在线看| 亚洲国产aⅴ综合网| 猫咪免费人成网站在线观看入口 | 免费在线黄色网址| 日本精品久久久久久久久免费| 少妇亚洲免费精品| 免费高清小黄站在线观看 | 国产三级免费电影| 人妻无码中文字幕免费视频蜜桃| gogo全球高清大胆亚洲| 国产三级在线免费观看| 亚洲AV乱码久久精品蜜桃 | 免费国产99久久久香蕉| 亚洲AV永久精品爱情岛论坛| 91精品国产免费入口| 亚洲一级毛片在线观| 国产黄色片在线免费观看| 黄色a三级三级三级免费看| 国产亚洲精午夜久久久久久| 免费在线中文日本| 亚洲jjzzjjzz在线播放| www.亚洲精品.com| 在线观看的免费网站无遮挡| 亚洲人成网站免费播放| 亚洲熟伦熟女新五十路熟妇| 亚洲精品免费在线观看| 亚洲午夜福利在线视频| 伊伊人成亚洲综合人网7777| 3344免费播放观看视频| 国产成人亚洲综合在线| 久久久久久a亚洲欧洲AV| 国内大片在线免费看| 91视频免费观看高清观看完整| 亚洲国产日产无码精品| 亚洲高清偷拍一区二区三区| 91精品免费久久久久久久久|