<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 注冊路由 最基礎的路由定義方法是 在控制器中指定 @RestController 注解: >[danger] 要使用`Route`類注冊路由必須首先在路由定義文件開頭添加引用 **(后面不再重復說明)** > ~~~ > use ESD\Plugins\EasyRoute\Annotation\RestController; > ~~~ ~~~ <?php namespace ESD\Examples\Controller; use ESD\Go\GoController; use ESD\Plugins\EasyRoute\Annotation\RestController; /** * @RestController("user") */ class CUser extends GoController{ } ~~~ >[info] 由于路由需要框架啟動前就進行解析,所以框架需要掃描標記了@RestController 的類進行注冊路由規則。如果你忘記在控制器上使用用該注解,以下相關路由規則均無效。 例如注冊如下路由規則: ~~~ /** * 聲明控制器里需要解析路由規則 * @RestController() */ class Index extends GoController { /** * 設置一個主頁路由 * @GetMapping("/") * @return string */ public function test() { return "hello"; } } ~~~ 我們訪問: ~~~ http://serverName:8080/ ~~~ 會自動路由到: ~~~ Index 類的 test 方法 ~~~ 我們看到方法的注釋中有 `@GetMapping`方法,表示這是指定請求類型為GET的,如果請求的非GET類型,則系統會拋出http 400 bad request。 請求類型的快捷方法,還包括: | 類型 | 描述 | 快捷方法 | | --- | --- | --- | | GET | GET請求 | @GetMapping| | POST | POST請求 | @PostMapping| | 其他請求| 通過參數method={"put","delete"}} | @RequestMapping| 如: ~~~ ** * @RequestMapping(method={"put","delete"}) * @return string */ public function test5(){ return "hello"; } ~~~ # 路由表達式 路由表達式統一使字符串定義,采用規則定義的方式(不支持直接使用正則表達式,但支持給某個變量定義正則,參考后面的變量規則部分)。 ## 規則表達式 規則表達式通常包含靜態規則和動態規則,以及兩種規則的結合,例如下面都屬于有效的規則表達式: 默認情況下,`*Mapping`使用一種語法,其中`{foo}`指定一個名為`foo`的占位符并匹配正則表達式\[^ /\] +`。要調整占位符匹配的模式,可以通過編寫`{bar:\[0-9\] +}`來指定自定義模式。一些例子: ~~~ // 匹配 /user/42, 不匹配 /user/xyz @GetMapping("/user/{id:\d+}") // 匹配 /user/foobar, 不匹配 /user/foo/bar @GetMapping("/user/{name}") // 匹配 /user/foo/bar as well @GetMapping("/user/{name:.+}") ~~~ ## 可選變量 路徑占位符的自定義模式無法使用捕獲組。例如,`{lang:(en|de)}`不是有效的占位符,因為`()`是一個捕獲組。相反,你可以使用`{lang:en|de}`或`{lang:(?:en|de)}`。 此外,`[...]`中包含的路徑部分被認為是可選的,因此/ foo \[bar\]將匹配/ foo和/ foobar。**可選部件僅支持在尾隨位置**,而不是在路徑中間。 ~~~ //比如這條規則 @GetMapping("/user/{id:\d+}[/{name}]") // 相當于下面兩條規則 @GetMapping("/user/{id:\d+}") @GetMapping("/user/{id:\d+}/{name}") // 也可以使用多個嵌套的可選部件 @GetMapping("/user[/{id:\d+}[/{name}]]") // 此路由無效,因為可選部件只能在最后發生 @GetMapping("/user[/{id:\d+}]/{name}") ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看