最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring MVC常用客戶端參數(shù)接收方式詳解

 更新時間:2019年02月26日 09:05:14   作者:RainNenya  
這篇文章主要介紹了Spring MVC常用客戶端參數(shù)接收方式詳解,文章主要介紹了幾種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在MVC結構中,控制器組件主要的功能就是接收請求、處理請求、生成響應,接收客戶端傳來的請求參數(shù)的往往是控制器要做的第一件事。

Book實體類Book.java

public class Book {
  private Integer bookId;
  private String author;
  //生成Get、Set方法,此處省略
}

一、直接用參數(shù)名匹配請求參數(shù)

客戶端界面(表單):

<form action="/queryString" method="post">
  <input type="text" name="bookId">
  <input type="text" name="author">
  <input type="submit" value="提交">
</form>

controller層:

@Controller
public class ParamPassDemo {
  @RequestMapping(value="/queryString")
  public String test1(Integer bookId, String author) {
    System.out.println("bookId="+bookId+", author="+author);
    //此處返回的地址為(/WEB-INF/jsp/index.jsp)
    return "index";
  }
}

注意:這里@RequestMapping中只有value屬性,value可以省略不寫。

客戶端輸入:123,Rose

控制臺輸出:bookId=123, author=Rose

二、通過@RequestParam注解來指定請求參數(shù)的name

客戶端界面(表單):

<form action="/queryStringWithSpecName" method="post">
  <input type="text" name="bookId" value="321">
  <input type="text" name="author" value="Jack">
  <input type="submit" value="提交">
</form>

如果表單中的字段與方法中的參數(shù)名一致,可以不需要@RequestParam,Spring會自動處理。
controller層:

@Controller
public class ParamPassDemo {
  @RequestMapping("/queryStringWithSpecName")
  public String test2((value="bookId",required=false) Integer id, @RequestParam("author") String name) {
    System.out.println("bookId="+id+", author="+name);
    return "index";
  }
}

注意:這里@RequestMapping中有兩個屬性,value不能省略。

@RequestParam將請求地址中的參數(shù)傳遞給目標方法,在處理方法入參處使用可以把請求參數(shù)傳遞給請求方法。
當使用@RequestParam注解時,設置客戶端傳遞的請求參數(shù)name="bookId"和@RequestParam的value值value="bookId"相匹配后,參數(shù)名int id可以和請求參數(shù)不匹配。

客戶端輸入:321, Jack

控制臺輸出:bookId=321, author=Jack

客戶端界面(ajax):

<button onclick="clickMe()">點我</button>
<script>
  function clickMe() {
      $.ajax({
      type : 'POST',
      url : "/queryStringWithSpecName",
      data : {
        "bookId" : 1,
        "author" : "Jack"
      },
    });
  }
</script>

controller層:(不變)

客戶端: data:{"author" : "Jack"}

控制臺輸出: bookId=null, author=Jack(如果bookId為int類型,控制臺會拋出異常)

客戶端: data:{"bookId" : 1}

控制臺輸出: org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'author' is not present

通過required設置可選參數(shù),required為false時表示可以不帶參數(shù),為true時表示必須帶參數(shù)(默認值為true)。

當可選參數(shù)不存在時,Spring默認將其賦值為空(null),但由于bookId已定義為基本類型int,所以賦值會失敗。解決方法:采用int包裝類Integer。

三、使用領域對象來接收參數(shù)

客戶端界面(表單):

<form action="/queryStringWithDomainObj" method="post">
  <input type="text" name="bookId">
  <input type="text" name="author">
  <input type="submit" value="提交">
</form>

controller層:

@Controller
public class ParamPassDemo {
  @RequestMapping("/queryStringWithDomainObj")
  public String test3(Book book) {
    System.out.println("bookId="+book.getBookId()+", author="+book.getAuthor());
    return "index";
  }
 }

客戶端輸入:111, Bob

控制臺輸出:bookId=111, author=Bob

四、URL動態(tài)參數(shù)傳遞(路徑參數(shù))

客戶端界面(超鏈接):

<a href="/book/1" rel="external nofollow" >testPathVariable</a>

controller層:

@Controller
public class ParamPassDemo {
  //@PathVariable可以用來映射URL中的占位符到目標方法的參數(shù)中
  @RequestMapping("/book/{bookId}")
  public String test4(@PathVariable("bookId") Integer bookId) {
    System.out.println("bookId:" + bookId);
    return "index";
  }
 }

控制臺輸出:bookId:1

@PathVariable 映射 URL 綁定的占位符

通過 @PathVariable 可以將 URL 中占位符參數(shù)綁定到控制器處理方法的入參中:URL 中的 {xxx} 占位符可以通過@PathVariable(“xxx“) 綁定到操作方法的入參中。

五、使用HttpServletRequest獲取請求參數(shù)

客戶端界面(表單):

<form action="/queryBook" method="post">
  <input type="text" name="bookId">
  <input type="text" name="author">
  <input type="submit" value="提交">
</form>

controller層:

@Controller
public class ParamPassDemo {
  @RequestMapping("/queryBook")
  public String test5(HttpServletRequest request) {
    System.out.println("bookId:" + request.getParameter("bookId"));
    //此處index.jsp界面在WEB-INF下
    return "redirect:/index.jsp";
  }
 }

客戶端輸入:123

控制臺輸出:用戶id:123

六、跳轉到另一個controller方法

客戶端界面(url地址欄):http://localhost:8080/test6?bookId=321

controller層:

@Controller
public class ParamPassDemo {
  @RequestMapping("/test6")
  public String test6(String bookId){
    System.out.println("bookId="+bookId);
    //使用服務端跳轉的方式轉向到另一個controller
    //return "forward:queryBook?bookId="+bookId;
    return "redirect:queryUser?bookId="+bookId;
  }
 }

控制臺輸出:bookId=321 bookId:321

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java微信支付之公眾號支付、掃碼支付實例

    Java微信支付之公眾號支付、掃碼支付實例

    微信支付已經成為生活中必不可少的付款方式,本篇文章主要介紹了Java微信支付之公眾號支付、掃碼支付,有需要的小伙伴可以了解一下。
    2016-11-11
  • SpringBoot如何整合SpringDataJPA

    SpringBoot如何整合SpringDataJPA

    這篇文章主要介紹了SpringBoot整合SpringDataJPA代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • java裁剪圖片并保存的示例分享

    java裁剪圖片并保存的示例分享

    在這篇文章中我們將學習如何用Java 對圖像進行剪裁并將剪裁出來的部分單獨保存到文件中
    2014-01-01
  • MyBatis?在使用上的注意事項及其辨析(最新最全整理)

    MyBatis?在使用上的注意事項及其辨析(最新最全整理)

    這篇文章主要介紹了MyBatis的在使用上的注意事項及其辨析,本文內容比較長,是小編用心給大家整理的,圖文實例代碼相結合給大家講解的非常詳細,需要的朋友參考下吧
    2024-06-06
  • Spring Cloud微服務架構的構建:分布式配置中心(加密解密功能)

    Spring Cloud微服務架構的構建:分布式配置中心(加密解密功能)

    這篇文章主要給大家介紹了關于Spring Cloud微服務架構的構建:分布式配置中心(加密解密)的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用具有一定的參考學習價值,需要的朋友可以參考下
    2018-05-05
  • Java Mybatis框架增刪查改與核心配置詳解流程與用法

    Java Mybatis框架增刪查改與核心配置詳解流程與用法

    MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設置參數(shù)和獲取結果集的工作。MyBatis 可以通過簡單的 XML 或注解來配置和映射原始類型、接口和 Java POJO為數(shù)據(jù)庫中的記錄
    2021-10-10
  • Java線程安全狀態(tài)專題解析

    Java線程安全狀態(tài)專題解析

    線程安全是多線程編程時的計算機程序代碼中的一個概念。在擁有共享數(shù)據(jù)的多條線程并行執(zhí)行的程序中,線程安全的代碼會通過同步機制保證各個線程都可以正常且正確的執(zhí)行,不會出現(xiàn)數(shù)據(jù)污染等意外情況
    2022-03-03
  • java分布式面試CAP分別代表含義分析

    java分布式面試CAP分別代表含義分析

    這篇文章主要為大家介紹了java分布式面試中關于CAP分別代表含義的問題分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • java在cmd中亂碼的問題解決

    java在cmd中亂碼的問題解決

    本文深入探討了在使用Java命令行cmd時可能出現(xiàn)的中文亂碼問題,并提供了兩種解決方案,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2024-03-03
  • SpringBoot使用JDBC獲取相關的數(shù)據(jù)方法

    SpringBoot使用JDBC獲取相關的數(shù)據(jù)方法

    這篇文章主要介紹了SpringBoot使用JDBC獲取相關的數(shù)據(jù)方法,JDBC與數(shù)據(jù)庫建立連接、發(fā)送 操作數(shù)據(jù)庫的語句并處理結果,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03

最新評論

穆棱市| 甘谷县| 德清县| 五台县| 兴国县| 台湾省| 繁昌县| 封开县| 桃园市| 株洲县| 襄樊市| 峡江县| 诏安县| 莆田市| 亳州市| 中阳县| 青铜峡市| 故城县| 邵武市| 博白县| 龙南县| 宜君县| 汉寿县| 遵义县| 永春县| 福鼎市| 定南县| 上栗县| 丹阳市| 萨迦县| 藁城市| 乡宁县| 泾源县| 嵊泗县| 遂宁市| 静宁县| 温泉县| 随州市| 崇阳县| 高邮市| 桑日县|