SpingMVC常用注解

      網(wǎng)友投稿 743 2022-05-30

      ### 1.RequestMapping注解

      - RequestMapping注解的作用是建立請(qǐng)求URL和處理方法之間的對(duì)應(yīng)關(guān)系

      - RequestMapping注解可以作用在方法和類上

      1. 作用在類上:第一級(jí)的訪問(wèn)目錄

      2. 作用在方法上:第二級(jí)的訪問(wèn)目錄

      3. 細(xì)節(jié):路徑可以不編寫(xiě) / 表示應(yīng)用的根目錄開(kāi)始

      4. ==細(xì)節(jié):${ pageContext.request.contextPath }也可以省略不寫(xiě),但是路徑上不能寫(xiě)/==

      - RequestMapping的屬性

      1. path 指定請(qǐng)求路徑的url

      2. value value屬性和path屬性是一樣的

      3. mthod 指定該方法的請(qǐng)求方式

      4. params 指定限制請(qǐng)求參數(shù)的條件

      5. headers 發(fā)送的請(qǐng)求中必須包含的請(qǐng)求頭

      ### 2.RequestParam注解

      - 把請(qǐng)求中的指定名稱的參數(shù)傳遞給控制器中的形參賦值

      - 屬性

      1. value:請(qǐng)求參數(shù)中的名稱

      2. required:表示請(qǐng)求參數(shù)中是否必須提供此參數(shù),默認(rèn)值是true,必須提供

      ```java

      public String sayHello(@RequestParam(value="username",required=false)String name)

      ```

      ### 3.RequestBody注解

      - 用于獲取請(qǐng)求體的內(nèi)容(注意:get方法不可以)

      - 屬性:required:是否必須有請(qǐng)求體,默認(rèn)值是true

      ```java

      public String sayHello(@RequestBody(required=false) String body)

      ```

      ### 4.PathVariable注解

      - 擁有綁定url中的占位符的。例如:url中有/delete/{id},{id}就是占位符

      - 屬性:value:指定url中的占位符名稱

      ```java

      public String sayHello(@PathVariable(value="id") String id)

      ```

      **Restful風(fēng)格的URL**

      1. 請(qǐng)求路徑一樣,可以根據(jù)不同的請(qǐng)求方式去執(zhí)行后臺(tái)的不同方法

      2. restful風(fēng)格的URL優(yōu)點(diǎn)

      - 結(jié)構(gòu)清晰

      - 符合標(biāo)準(zhǔn)

      - 易于理解

      - 擴(kuò)展方便

      ### 5.RequestHeader注解

      - 獲取指定請(qǐng)求頭的值

      - 屬性:value:請(qǐng)求頭的名稱

      ```java

      public String sayHello(@RequestHeader(value="Accept") String header)

      ```

      ### 6.CookieValue注解

      - 用于獲取指定cookie的名稱的值

      - 屬性:value:cookie的名稱

      ```java

      public String sayHello(@CookieValue(value="JSESSIONID") String cookieValue)

      ```

      ### 7.ModelAttribute注解

      - 作用

      1. 出現(xiàn)在方法上:表示當(dāng)前方法會(huì)在控制器方法執(zhí)行前線執(zhí)行。

      2. 出現(xiàn)在參數(shù)上:獲取指定的數(shù)據(jù)給參數(shù)賦值。

      - 應(yīng)用場(chǎng)景:當(dāng)提交表單數(shù)據(jù)不是完整的實(shí)體數(shù)據(jù)時(shí),保證沒(méi)有提交的字段使用數(shù)據(jù)庫(kù)原來(lái)的數(shù)據(jù)。

      **修飾的方法有返回值**

      ```java

      /**

      * 作用在方法,先執(zhí)行

      * @param name

      * @return

      */

      @ModelAttribute

      public User showUser(String name) {

      System.out.println("showUser執(zhí)行了...");

      // 模擬從數(shù)據(jù)庫(kù)中查詢對(duì)象

      User user = new User();

      user.setName("哈哈");

      user.setPassword("123");

      user.setMoney(100d);

      return user;

      }

      /**

      * 修改用戶的方法

      * @param cookieValue

      * @return

      */

      @RequestMapping(path="/updateUser")

      public String updateUser(User user) {

      System.out.println(user);

      return "success";

      }

      ```

      **修飾的方法沒(méi)有返回值**

      ```java

      /**

      * 作用在方法,先執(zhí)行

      * @param name

      * @return

      */

      @ModelAttribute

      public void showUser(String name,Map map) {

      System.out.println("showUser執(zhí)行了...");

      // 模擬從數(shù)據(jù)庫(kù)中查詢對(duì)象

      User user = new User();

      user.setName("哈哈");

      user.setPassword("123");

      user.setMoney(100d);

      map.put("abc", user);

      }

      /**

      * 修改用戶的方法

      * @param cookieValue

      * @return

      */

      @RequestMapping(path="/updateUser")

      public String updateUser(@ModelAttribute(value="abc") User user) {

      System.out.println(user);

      return "success";

      }

      ```

      **ModelAttribute注釋一個(gè)方法的參數(shù)**

      ```java

      @ModelAttribute("user")

      public User addAccount() {

      return new User("jz","123");

      }

      @RequestMapping(value = "/helloWorld")

      public String helloWorld(@ModelAttribute("user") User user) {

      user.setUserName("jizhou");

      return "helloWorld";

      }

      ```

      ==在這個(gè)例子里,@ModelAttribute("user") User user注釋方法參數(shù),參數(shù)user的值來(lái)源于addAccount()方法中的model屬性。==

      ### 8.SessionAttribute注解

      - 用于多次執(zhí)行控制器方法間的參數(shù)共享。

      - 屬性:

      1. value:用于指定存入的屬性名稱

      2. type:用于指定存入的數(shù)據(jù)類型。

      ```java

      @Controller

      @RequestMapping(path="/user")

      @SessionAttributes(value ={"username","password"},types={Integer.class})

      public class SessionAttributeController {

      SpingMVC的常用注解

      /**

      * 把數(shù)據(jù)存入 SessionAttribute

      * @param model

      * @return

      * Model 是 spring 提供的一個(gè)接口,該接口有一個(gè)實(shí)現(xiàn)類 ExtendedModelMap

      * 該類繼承了 ModelMap,而 ModelMap 就是 LinkedHashMap 子類

      */

      @RequestMapping("/testPut")

      public String testPut(Model model){

      model.addAttribute("username", "泰斯特");

      model.addAttribute("password","123456");

      model.addAttribute("age", 31);

      //跳轉(zhuǎn)之前將數(shù)據(jù)保存到 username、password 和 age 中,因?yàn)樽⒔釦SessionAttribute 中有這幾個(gè)參數(shù)

      return "success";

      }

      /**

      *從session中獲取值

      *@return

      */

      @RequestMapping("/testGet")

      public String testGet(ModelMap model){

      System.out.println(model.get("username")+";"

      +model.get("password")+";"+model.get("age"));

      return "success";

      }

      /**

      * 從session中清除值

      * @return

      */

      @RequestMapping("/testClean")

      public String complete(SessionStatus sessionStatus){

      sessionStatus.setComplete();

      return "success";

      }

      }

      ```

      數(shù)據(jù)庫(kù)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:Monorepo (單體倉(cāng)庫(kù))
      下一篇:解讀華為云原生數(shù)據(jù)庫(kù)設(shè)計(jì)原則,打破傳統(tǒng)數(shù)據(jù)庫(kù)上云瓶頸
      相關(guān)文章
      鲁死你资源站亚洲av| 亚洲成在人线av| 亚洲成AV人片在线观看ww| 亚洲欧美成人综合久久久| 在线精品亚洲一区二区| 亚洲成a人片7777| 久久亚洲私人国产精品| 久久精品蜜芽亚洲国产AV| 亚洲人成人无码网www电影首页| 亚洲成a人片在线观看国产| 亚洲乱色伦图片区小说| 亚洲国产精品久久久久秋霞小| 亚洲欧洲av综合色无码| 久久久久亚洲精品无码网址色欲 | 亚洲国产精品尤物YW在线观看| 无码色偷偷亚洲国内自拍| 最新亚洲人成无码网站| 亚洲国产成人久久精品99| 亚洲一本大道无码av天堂| 国产亚洲情侣一区二区无码AV| 亚洲熟妇无码乱子AV电影| 国产V亚洲V天堂无码| 亚洲精品福利视频| 亚洲成aⅴ人在线观看| 2017亚洲男人天堂一| 亚洲精品美女久久7777777| 最新亚洲人成无码网站| 亚洲伊人久久综合影院| 国产亚洲人成网站观看| 亚洲尹人九九大色香蕉网站 | 亚洲精品第五页中文字幕| 亚洲国产成人在线视频| 亚洲中文字幕无码爆乳| 亚洲成AV人影片在线观看| 亚洲第一成人影院| 精品亚洲综合在线第一区| 亚洲人成网www| 亚洲AV无码国产精品色| 色综合久久精品亚洲国产| 亚洲午夜精品一级在线播放放| 亚洲国产精品无码AAA片|