Spring MVC URL 路徑映射

  1. 普通 URL 路徑映射
    @RequestMapping(value={"/test1", "/user/create"}):多個URL路徑能夠映射到同一個處理器的功能處理
    方法。正則表達式

  2. URI 模板模式映射
    @RequestMapping(value="/users/{userId}"):{×××}佔位符,  請求的 URL 能夠是  「/users/123456」或
    「/users/abcd」 ,經過 6.6.5 講的經過@PathV ariable 能夠提取 URI 模板模式中的{×××}中的×××變量。
    @RequestMapping(value="/users/{userId}/create") : 這樣 也 是 可 以 的 ,請 求的 URL 可 以是
    「/users/123/create」 。
    @RequestMapping(value="/users/{userId}/topics/{topicId}"):這樣也是能夠的,請求的 URL 能夠是
    「/users/123/topics/123」 。app

  3. Ant 風格的 URL 路徑映射
    @RequestMapping(value="/users/**"):能夠匹配「/users/abc/abc」 ,但「/users/123」將會被【URI模板模式映射
    中的「/users/{userId}」模式優先映射到】【詳見4.14的最長匹配優先】 。
    @RequestMapping(value="/product?"): 可匹配 「/product1」 或 「/producta」 , 但不匹配 「/product」 或 「/productaa」 ;
    @RequestMapping(value="/product*"):可匹配「/productabc」或「/product」 ,但不匹配「/productabc/abc」;
    @RequestMapping(value="/product/*"):可匹配「/product/abc」 ,但不匹配「/productabc」;
    @RequestMapping(value="/products/**/{productId}"):可匹配「/products/abc/abc/123」或「/products/123」 ,
    也就是Ant風格和URI模板變量風格可混用;
    此處須要注意的是【4.14 中提到的最長匹配優先】 ,Ant 風格的模式請參考 4.14。設計

  4. 正則表達式風格的 URL 路徑映射
    從 Spring3.0 開始支持正則表達式風格的 URL 路徑映射, 格式爲{變量名:正則表達式}, 這樣咱們就能夠經過 6.6.5 講的
    經過@PathV ariable 提取模式中的{×××:正則表達式匹配的值}中的×××變量了。
    @RequestMapping(value="/products/{categoryCode:\\d+}-{pageNumber:\\d+}") : 可 以 匹 配
    「/products/123-1」 ,但不能匹配「/products/abc-1」 ,這樣能夠設計更加嚴格的規則。字符串

    正則表達式風格的 URL 路徑映射是一種特殊的 URI 模板模式映射:
    URI 模板模式映射是{userId},不能指定模板變量的數據類型,如是數字仍是字符串;
    正則表達式風格的 URL 路徑映射,能夠指定模板變量的數據類型,能夠將規則寫的至關複雜。模板

相關文章
相關標籤/搜索