<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Spring `@PostMapping`示例 – `@GetMapping`示例 > 原文: [https://howtodoinjava.com/spring5/webmvc/controller-getmapping-postmapping/](https://howtodoinjava.com/spring5/webmvc/controller-getmapping-postmapping/) 學習使用`@Controller`創建 [Spring MVC](https://howtodoinjava.com/spring-mvc-tutorial/) 控制器,并使用請求映射注解來映射請求,例如 `@RequestMapping`,`@GetMapping`,`@PostMapping`,`@PutMapping`,`@DeleteMapping`和`@PatchMapping`。 ## 1\. Spring 控制器 #### 1.1. `@Controller`注解 Spring MVC 提供了基于注解的方法,您無需擴展任何基類即可表達**請求映射**,請求**輸入參數**,**異常處理**等。 [`@Controller`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/stereotype/Controller.html)是類似的注解,將一個類標記為請求處理器。 `HomeController.java` ```java package com.howtodoinjava.web; @Controller public class HomeController { @GetMapping("/") public String homeInit(Model model) { return "home"; } } ``` 在上面的代碼中,`HomeController`類充當請求控制器。 它的`homeInit()`方法將處理對 URI `"/"`的所有傳入請求。 它接受`Model`并返回視圖名稱`home`。 此視圖名稱由配置的**視圖解析器**解析。 #### 1.2. 啟用組件掃描 要讓 Spring 掃描和配置`@Controller`帶注解的類,您需要在存儲控制器的軟件包上配置組件掃描。 `WebConfig.java` ```java @Configuration @ComponentScan("com.howtodoinjava.web") public class WebConfig { //Other configurations } //or <context:component-scan base-package="com.howtodoinjava.web"/> ``` > 閱讀更多: [Spring MVC 示例](https://howtodoinjava.com/spring5/webmvc/spring5-mvc-hibernate5-example/) ## 2\. Spring `@GetMapping`示例 `@GetMapping`是[`@RequestMapping`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html)注解的專用版本,用作`@RequestMapping(method = RequestMethod.GET)`的快捷方式。 [`@GetMapping`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/GetMapping.html)帶注解的方法處理與給定 URI 表達式匹配的 HTTP `GET`請求。 例如 `@GetMapping Example` ```java @GetMapping("/home") public String homeInit(Model model) { return "home"; } @GetMapping("/members/{id}") public String getMembers(Model model) { return "member"; } ``` ## 3\. Spring `@PostMapping`示例 `@PostMapping`是`@RequestMapping`注解的專用版本,用作`@RequestMapping(method = RequestMethod.POST)`的快捷方式。 [`@PostMapping`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/PostMapping.html)帶注解的方法處理與給定 URI 表達式匹配的 HTTP `POST`請求。 例如 `@PostMapping Example` ```java @PostMapping(path = "/members", consumes = "application/json", produces = "application/json") public void addMember(@RequestBody Member member) { //code } ``` `consumes`和`produces`屬性還支持否定表達式,例如`!text/plain`表示除`text/plain`以外的任何媒體類型。 ## 4\. 共享的類級別屬性 您可以在類級別聲明共享的`produces`屬性。 在類級別使用時,方法級別的`produces`屬性將覆蓋類級別的聲明。 `HomeController.java` ```java package com.howtodoinjava.web; @Controller @RequestMapping(path = "/", produces = MediaType.APPLICATION_JSON_VALUE) public class HomeController { @PostMapping(path = "/members") public void addMemberV1(@RequestBody Member member) { //code } @PostMapping(path = "/members", produces = MediaType.APPLICATION_XML_VALUE) public void addMemberV2(@RequestBody Member member) { //code } } ``` 在上面的示例中,`addMemberV1()`方法以默認媒體類型(即`application/json`)生成內容。 第二種方法`addMemberV2()`會覆蓋`produces`屬性,并將生成`application/xml`類型的內容。 ## 5\. `@PostMapping`與`@RequestMapping` 1. 如上所述,`@PostMapping`注解是`@RequestMapping`注解的一種特殊版本,用于處理 **HTTP POST** 請求。 2. `@PostMapping`是`@RequestMapping(method = RequestMethod.POST)`的快捷方式。 `PostMapping.java` ```java @Target({ java.lang.annotation.ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) @Documented @RequestMapping(method = { RequestMethod.POST }) public @interface PostMapping { //code } ``` 3. 在兩個注解中,傳遞 URL 信息都是相同的。 讓我們看看使用簡單代碼的 PostMapping 和@RequestMapping 注解之間的**區別**。 ```java @RequestMapping(value = "/employees", method = RequestMethod.POST) //1 @PostMapping("/employees") //2 ``` ## 6\. 總結 Spring MVC 使編寫請求處理器控制器類和方法變得非常容易。 只需添加一些注解,例如`@GetMapping`和`@PostMapping`,然后將此類放置在組件掃描可以找到它們并在 Web 應用程序上下文中對其進行配置的位置。 在類級別創建屬性也非常容易,以便所有處理器方法默認都繼承它們,并可以在需要時覆蓋它們。 同樣,您可以使用其他請求映射注解,例如 `@PutMapping`,`@DeleteMapping`和`@PatchMapping`。 學習愉快!
                  <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>

                              哎呀哎呀视频在线观看