欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springmvc 參數(shù)綁定總結(jié)

 更新時(shí)間:2017年03月23日 14:18:08   作者:lialzm  
本篇文章主要介紹了詳解springmvc 參數(shù)綁定,詳細(xì)的介紹了springmvc各種參數(shù)綁定的情況,具有一定的參考價(jià)值,有興趣的可以了解一下。

最近在學(xué)習(xí)springmvc,今天把springmvc 參數(shù)綁定給整理一下,也算個(gè)學(xué)習(xí)筆記吧!

@RequestParam 綁定單個(gè)請(qǐng)求

RequestMapping(value = "/form2")
  @ResponseBody
  public String form2(@RequestParam String name){
    logger.info("name=" + name );
    return "";
  }

@RequestParam 有required(是否必填),defaultValue(默認(rèn)參數(shù))參數(shù)

默認(rèn)required=true,defaultValue為空

如果name參數(shù)不存在則返回400

使用下面這種寫法則required默認(rèn)為false

 @RequestMapping(value = "/form")
  @ResponseBody
  public String form(String name, Integer age) {
    logger.info("name=" + name + "," + "age=" + age);
    return "";
  }

@RequestParam還支持?jǐn)?shù)組形式

@RequestMapping(value = "/names")
  @ResponseBody
  public String names(@RequestParam String[] name) {
    logger.info("name=" + Arrays.asList(name));
    return Arrays.asList(name).toString();
  }

對(duì)應(yīng)請(qǐng)求/names.do?name=張三,李四

或者/names.do?name=張三&name=李四

@PathVariable 綁定uri變量值

@RequestMapping("/user/{id}")
  @ResponseBody
  public String getUser(@PathVariable Long id) {
    return String.valueOf(id);
  }

請(qǐng)求/user/1返回id為1

@CookieValue 綁定cookie的值

 @RequestMapping("/getCookie")
  @ResponseBody
  public String getCookie(@CookieValue("JSESSIONID") String sessionId) {
    return sessionId;
  }

@ModelAttribute綁定參數(shù)到命令對(duì)象

1、綁定請(qǐng)求參數(shù)到對(duì)象

先定義兩個(gè)對(duì)象
Role

public class Role implements Serializable {

  private String id;
}

User

public class User implements Serializable {

  private String id;

  private Role role;
}
@RequestMapping("/getUserByModel")
  @ResponseBody
  public String getUserByModel(@ModelAttribute("user") User user) {
    logger.info(user.toString());
    return "";
  }

對(duì)應(yīng)請(qǐng)求/getUserByModel.do?id=123&role.id=1

暴露表單引用對(duì)象為模型數(shù)據(jù)

 @ModelAttribute("user")
  public User getUser(String userId) {
    User user = new User();
    user.setId("11");
    Role role=new Role();
    role.setId("123");
    user.setRole(role);
    return user;
  }

 
   @RequestMapping("/getUserModel")
  @ResponseBody
  public String getUserModel(@ModelAttribute User user) {
    return user.toString();
  }

請(qǐng)求/getUserModel?id=1

返回 User{id='1', role=Role{id='123'}}

使用@ModelAttribute注釋的方法會(huì)在所有Controller方法前運(yùn)行

因?yàn)橄冗\(yùn)行了@ModelAttribute注解的方法,生成了一個(gè)user對(duì)象,之后user對(duì)象的id屬性被修改為1

@SessionAttributes綁定命令對(duì)象到session

springmvc提供了@SessionAttributes用來對(duì)會(huì)話數(shù)據(jù)的存取

添加session

 @RequestMapping("/setSession")
  @ResponseBody
  public String setSession(
      HttpSession session) {
    City city = new City();
    city.setCityName("shanghai");
    session.setAttribute("city", city);
    return city.toString();
  }

獲取session數(shù)據(jù)

//在類頭部添加需要的session屬性
@Controller
@SessionAttributes(value = {"city"})
public class TestController {
 @RequestMapping("/getSession")
  @ResponseBody
  public String getSession(@ModelAttribute City city) {
    return city.toString();
  }
}

清除本次會(huì)話session

 @RequestMapping("/clearSession")
  @ResponseBody
  public String clearSession(SessionStatus status) {
    status.setComplete();
    return "success";
  }

@RequestBody綁定請(qǐng)求的內(nèi)容區(qū)數(shù)據(jù)并能進(jìn)行自動(dòng)類型轉(zhuǎn)換等

使用RequestBody可以將json轉(zhuǎn)化為對(duì)象

 @RequestMapping("/getUserByJson")
  @ResponseBody
  public String getUserByJson(@RequestBody User user){
    return user.toString();
  }

發(fā)送json格式報(bào)文

{
  "id":"123"
}

返回結(jié)果User{id='123', role=null}

@RequestPart綁定“multipart/data”數(shù)據(jù)

 @RequestMapping("/getFile")
  @ResponseBody
  public String getFile(@RequestPart("image") MultipartFile file){
    System.out.println(file.getName()+","+file.getSize());
    return "success";
  }

源碼地址springmvcLearn_jb51.rar

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • springboot中swagger、異步/定時(shí)/郵件任務(wù)的問題

    springboot中swagger、異步/定時(shí)/郵件任務(wù)的問題

    這篇文章主要介紹了springboot中swagger、異步/定時(shí)/郵件任務(wù)的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • Java實(shí)現(xiàn)的文件過濾代碼分享(按后輟過濾)

    Java實(shí)現(xiàn)的文件過濾代碼分享(按后輟過濾)

    這篇文章主要介紹了Java實(shí)現(xiàn)的文件過濾代碼分享,本文通過后輟名過濾,代碼寫簡(jiǎn)潔,容易看懂,需要的朋友可以參考下
    2014-07-07
  • Java分層概念詳解

    Java分層概念詳解

    這篇文章主要介紹了Java分層概念詳解,內(nèi)容十分詳細(xì),在這里給大家分享下,需要的朋友可以參考。
    2017-09-09
  • Java的Atomic原子類詳解

    Java的Atomic原子類詳解

    這篇文章主要介紹了Java的Atomic原子類詳解,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • 基于rabbitmq延遲插件實(shí)現(xiàn)分布式延遲任務(wù)

    基于rabbitmq延遲插件實(shí)現(xiàn)分布式延遲任務(wù)

    這篇文章主要介紹了基于rabbitmq延遲插件實(shí)現(xiàn)分布式延遲任務(wù),今天我們講解延遲隊(duì)列的實(shí)現(xiàn)方式,而延遲隊(duì)列有很多種實(shí)現(xiàn)方式,今天就每種實(shí)現(xiàn)方式給大家大概介紹下,感興趣的朋友一起看看吧
    2022-01-01
  • java中樂觀鎖與悲觀鎖區(qū)別及使用場(chǎng)景分析

    java中樂觀鎖與悲觀鎖區(qū)別及使用場(chǎng)景分析

    本文主要介紹了java中樂觀鎖與悲觀鎖區(qū)別及使用場(chǎng)景分析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • Spring中@Qualifier注解的用法

    Spring中@Qualifier注解的用法

    但凡有點(diǎn)開發(fā)經(jīng)驗(yàn),多多少少可能都遇到過@Qualifier注解的使用場(chǎng)景,本文主要介紹了Spring中@Qualifier注解的用法,感興趣的可以了解一下
    2023-11-11
  • java動(dòng)態(tài)綁定和靜態(tài)綁定用法實(shí)例詳解

    java動(dòng)態(tài)綁定和靜態(tài)綁定用法實(shí)例詳解

    這篇文章主要介紹了java動(dòng)態(tài)綁定和靜態(tài)綁定用法,結(jié)合實(shí)例形式詳細(xì)分析了java動(dòng)態(tài)綁定與靜態(tài)綁定相關(guān)概念、原理、實(shí)現(xiàn)方法及使用注意事項(xiàng),需要的朋友可以參考下
    2019-05-05
  • java 實(shí)現(xiàn)圖片圓角處理、背景透明化

    java 實(shí)現(xiàn)圖片圓角處理、背景透明化

    這篇文章主要介紹了java 實(shí)現(xiàn)圖片圓角處理、背景透明化,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 詳解Spring Boot中PATCH上傳文件的問題

    詳解Spring Boot中PATCH上傳文件的問題

    這篇文章主要介紹了詳解Spring Boot中PATCH上傳文件的問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12

最新評(píng)論