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

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

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

    JAVA—咖啡館

    ——?dú)g迎訪問(wèn)rogerfan的博客,常來(lái)《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術(shù),交流工作經(jīng)驗(yàn),分享JAVA帶來(lái)的快樂(lè)!本網(wǎng)站部分轉(zhuǎn)載文章,如果有版權(quán)問(wèn)題請(qǐng)與我聯(lián)系。

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

    為了方便ajax調(diào)用傳輸數(shù)據(jù),在struts2中加入的json插件用來(lái)做對(duì)象的序列化和反序列化,json插件的下載地址

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

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

    注:struts2的json插件有兩個(gè)版本0.32和0.34,我用的struts2的版本是2.0.11,在加入0.34版本json插件時(shí)啟動(dòng)發(fā)生異常,提示找不到相關(guān)方法,后來(lái)就換成了低版本的0.32一切OK,仔細(xì)查看文檔后發(fā)現(xiàn)struts2的2.0.*版本的對(duì)應(yīng)插件的0.32版本,struts2.1.*版本對(duì)應(yīng)0.34版本

     

    2.json插件執(zhí)行原理時(shí)序圖

     

    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文本提交的請(qǐng)求-->   
    3    <result type="json" /> <!--將action的bean屬性以json字符串返回瀏覽器-->   
    4</action>   

       注:根據(jù)需要選擇interceptor和result配置

     

    5. 你會(huì)發(fā)現(xiàn)前臺(tái)返回的json字符串,是把a(bǔ)ction中的所有屬性全部轉(zhuǎn)化為json字符串返回給瀏覽器了,但是我有時(shí)候需要根據(jù)實(shí)際情況返回部分結(jié)果,如何對(duì)json的結(jié)果進(jìn)行定制輸出呢?result提供了一些參數(shù)替你解決這個(gè)問(wèn)題

      5.1. root參數(shù):從返回結(jié)果中根據(jù)ognl表達(dá)式取出你需要輸出的結(jié)果

             如:

        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對(duì)象的name屬性值,配置如下

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

     

      5.2. excludeNullProperties 參數(shù):表示是否去掉空值, 默認(rèn)值是false,如果設(shè)置為true會(huì)自動(dòng)將為空的值過(guò)濾,只輸出不為空的值。

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

     

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

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

     

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

       如:輸出person的所有屬性 

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

     

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

    posted on 2010-01-26 11:36 rogerfan 閱讀(19264) 評(píng)論(7)  編輯  收藏 所屬分類: 【開(kāi)源技術(shù)】

    Feedback

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

    Action中有一個(gè)屬性是 List<Person> personList ;

    若是讓struts的json插件來(lái)把這個(gè)對(duì)象轉(zhuǎn)換為json格式,會(huì)出現(xiàn)懶加載問(wèn)題,因?yàn)閜ersonList是Person對(duì)象的集合,而person對(duì)象中有一個(gè)屬性是Cars的一對(duì)多關(guān)聯(lián)關(guān)系,所以在轉(zhuǎn)換為json格式的時(shí)候cars這個(gè)屬性值是無(wú)法提取出來(lái)的,因?yàn)樵谵D(zhuǎn)換的時(shí)候session已經(jīng)關(guān)閉了,而且也沒(méi)有必要提取出來(lái),所以我的問(wèn)題是如何配置可以讓json插件轉(zhuǎn)換json格式的時(shí)候忽略 personList集合中Person對(duì)象的 cars屬性!

    請(qǐng)你幫我看看,謝謝了!  回復(fù)  更多評(píng)論
      

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

    # re: struts2的json插件配置詳解(附demo) 2012-12-19 22:24 阿丘
    非常感謝樓主的筆記,非常的感謝!寫的非常的詳細(xì),為我在項(xiàng)目中這個(gè)點(diǎn)的知識(shí)明朗了很多!非常感謝!  回復(fù)  更多評(píng)論
      

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

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

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

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

    主站蜘蛛池模板: 最近中文字幕mv免费高清视频8| 91成人免费福利网站在线| 亚洲AV无码专区在线厂| 污污污视频在线免费观看| 中文字幕无码免费久久9一区9 | 中国国产高清免费av片| 免费无码一区二区三区| 成全影视免费观看大全二| 亚洲日韩精品无码专区网站| 亚洲VA中文字幕无码毛片| 亚洲一级高清在线中文字幕| 羞羞漫画小舞被黄漫免费| 全免费a级毛片免费看| 免费中文熟妇在线影片 | 成人免费午夜视频| 久久亚洲中文字幕精品一区四| 久久亚洲精品中文字幕| 亚洲AV男人的天堂在线观看| 一级做a爱过程免费视频高清| 一级毛片免费观看不卡视频 | 91免费在线播放| 国产乱子伦精品免费女| 亚洲av日韩综合一区在线观看| 精品国产成人亚洲午夜福利| 国产精品九九久久免费视频 | 亚洲av无码专区在线观看素人| 婷婷久久久亚洲欧洲日产国码AV| 亚洲色大成WWW亚洲女子| 中文字幕免费在线观看动作大片| 2020久久精品国产免费| 亚洲人成网站在线观看青青| 亚洲免费观看在线视频| WWW免费视频在线观看播放| 免费无码又黄又爽又刺激 | 亚洲日韩在线观看免费视频| 亚洲成在人线电影天堂色| 一级毛片大全免费播放下载| 无码少妇一区二区浪潮免费| 亚洲精品狼友在线播放| 亚洲av无码日韩av无码网站冲| 99re在线精品视频免费|