<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Spring 3.x MVC 入門3 -- 使用內(nèi)容協(xié)商來實現(xiàn)多視圖

      ContentNegotiatingViewResolver

      這個解析器是做什么用的?

      RESTful服務(wù)中很重要的一個特性即是同一資源,多種表述我們使用ContentNegotiatingViewResolver就可以做到,這個視圖解析器允許你用同樣的內(nèi)容數(shù)據(jù)來呈現(xiàn)不同的view

       

      如下面描述的三種方式:

       

      方式1  使用擴展名

      http://www.test.com/user.xml    呈現(xiàn)xml文件

      http://www.test.com/user.json    呈現(xiàn)json格式

      http://www.test.com/user       使用默認view呈現(xiàn),比如jsp等

      -----------------------------------------------------------------------------------------------------

      方式2  使用http request header的Accept

      GET /user HTTP/1.1

      Accept:application/xml

       

      GET /user HTTP/1.1

      Accept:application/json

       

      ….

      -----------------------------------------------------------------------------------------------------

       

      方式3  使用參數(shù)

      http://www.test.com/user?format=xml

      http://www.test.com/user?format=json

       

      這三種方式各自的優(yōu)缺點這里就不再介紹了

      如何使用ContentNegotiatingViewResolver?

      假設(shè)我們有這么一個目標(biāo):

      /user/{userid}.json    用于返回一個描述User的JSON

      /user/{userid}        用于返回一個展示User的JSP頁面

      /user/{userid}.xml     用于返回一個展示User的XML文件

       

      配置文件說明   (具體例子下篇文章放上)

      我們知道有accept header,擴展名以及參數(shù)這三種方式,配置文件中

       

      這里是解析器的執(zhí)行順序,如果有多個的話(前面多次解釋過)

      <property name="order" value="1"></property>

       

      --------------------------------------------------------------------------------------------------------------

       

      如果所有的mediaType都沒匹配上,就會使用defaultContentType

      <property name="defaultContentType" value="text/html" />

       

      這里是是否啟用擴展名支持,默認就是true

      例如  /user/{userid}.json

      <property name="favorPathExtension" value="true"></property>

      這里是是否啟用參數(shù)支持,默認就是true

      例如  /user/{userid}?format=json

      <property name="favorParameter" value="false"></property>

      這里是否忽略掉accept header,默認就是false

      例如     GET /user HTTP/1.1

      Accept:application/json

      <property name="ignoreAcceptHeader" value="true"></property>

       

      我們的例子是采用.json , .xml結(jié)尾的,所以關(guān)掉兩個

       

      --------------------------------------------------------------------------------------------------------------

      這里是擴展名到mimeType的映射,

      例如 /user/{userid}.json  中的   .json  就會映射到   application/json

      <property name="mediaTypes">

                 <map>

                    <entry key="json" value="application/json" />

                    <entry key="xml" value="application/xml" />                     </map>

      </property>

      注:

      ContentNegotiatingViewResolver是根據(jù)客戶提交的MimeType(如 text/html,application/xml)來跟服務(wù)端的一組viewResover的MimeType相比較,如果符合,即返回viewResover的數(shù)據(jù).
      而 /user/123.xml, ContentNegotiatingViewResolver會首先將 .xml 根據(jù)mediaTypes屬性將其轉(zhuǎn)換成 application/xml,然后完成前面所說的比較.

       

       

      ContentNegotiatingViewResolver的處理流程(左上角入口)

       

      posted on 2012-01-07 00:20  陽陽多  閱讀(8108)  評論(2)    收藏  舉報

      主站蜘蛛池模板: 97精品亚成在人线免视频| 护士的小嫩嫩好紧好爽| 日韩精品亚洲专在线电影| 亚洲国产成人AⅤ片在线观看| 久久亚洲精品11p| 粉嫩小泬无遮挡久久久久久| 成人欧美日韩一区二区三区| 国精品午夜福利不卡视频| 闽清县| 黑人大荫道bbwbbb高潮潮喷| 无码天堂va亚洲va在线va| 又爽又黄又无遮挡的激情视频| 色猫咪av在线网址| 国产亚洲精品久久777777| 国产精品无码素人福利不卡| 中国产无码一区二区三区| 亚洲一区成人在线视频| 亚日韩精品一区二区三区| 久久天天躁狠狠躁夜夜2020老熟妇| 绝顶丰满少妇av无码| 久久亚洲精品情侣| 久久国内精品自在自线91 | 青青国产揄拍视频| 午夜视频免费试看| 色成年激情久久综合国产| 日本一区二区不卡精品| 日韩欧激情一区二区三区| 亚洲午夜精品久久久久久抢| 国产亚洲精品福利在线无卡一| 99久久精品费精品国产一区二 | 日韩精品中文字幕国产一| 国产精品成人免费视频网站京东| 久久国产精品精品国产色婷婷| 南召县| 老妇xxxxx性开放| 这里只有精品免费视频| 黄频在线播放观看免费| 麻豆一区二区三区香蕉视频| 国产a在亚洲线播放| 辽宁省| 国产成人精品无人区一区|