真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

在MVC結(jié)構(gòu)中,控制器組件主要的功能就是接收請(qǐng)求、處理請(qǐng)求、生成響應(yīng),接收客戶(hù)端傳來(lái)的請(qǐng)求參數(shù)的往往是控制器要做的第一件事。

成都創(chuàng)新互聯(lián)主營(yíng)新榮網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app開(kāi)發(fā)定制,新榮h5成都小程序開(kāi)發(fā)搭建,新榮網(wǎng)站營(yíng)銷(xiāo)推廣歡迎新榮等地區(qū)企業(yè)咨詢(xún)

Book實(shí)體類(lèi)Book.java

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

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

客戶(hù)端界面(表單):

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可以省略不寫(xiě)。

客戶(hù)端輸入:123,Rose

控制臺(tái)輸出:bookId=123, author=Rose

二、通過(guò)@RequestParam注解來(lái)指定請(qǐng)求參數(shù)的name

客戶(hù)端界面(表單):

如果表單中的字段與方法中的參數(shù)名一致,可以不需要@RequestParam,Spring會(huì)自動(dòng)處理。
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中有兩個(gè)屬性,value不能省略。

@RequestParam將請(qǐng)求地址中的參數(shù)傳遞給目標(biāo)方法,在處理方法入?yún)⑻幨褂每梢园颜?qǐng)求參數(shù)傳遞給請(qǐng)求方法。
當(dāng)使用@RequestParam注解時(shí),設(shè)置客戶(hù)端傳遞的請(qǐng)求參數(shù)name="bookId"和@RequestParam的value值value="bookId"相匹配后,參數(shù)名int id可以和請(qǐng)求參數(shù)不匹配。

客戶(hù)端輸入:321, Jack

控制臺(tái)輸出:bookId=321, author=Jack

客戶(hù)端界面(ajax):



controller層:(不變)

客戶(hù)端: data:{"author" : "Jack"}

控制臺(tái)輸出: bookId=null, author=Jack(如果bookId為int類(lèi)型,控制臺(tái)會(huì)拋出異常)

客戶(hù)端: data:{"bookId" : 1}

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

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

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

三、使用領(lǐng)域?qū)ο髞?lái)接收參數(shù)

客戶(hù)端界面(表單):

controller層:

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

客戶(hù)端輸入:111, Bob

控制臺(tái)輸出:bookId=111, author=Bob

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

客戶(hù)端界面(超鏈接):

testPathVariable

controller層:

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

控制臺(tái)輸出:bookId:1

@PathVariable 映射 URL 綁定的占位符

通過(guò) @PathVariable 可以將 URL 中占位符參數(shù)綁定到控制器處理方法的入?yún)⒅校篣RL 中的 {xxx} 占位符可以通過(guò)@PathVariable(“xxx“) 綁定到操作方法的入?yún)⒅小?/p>

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

客戶(hù)端界面(表單):

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";
  }
 }

客戶(hù)端輸入:123

控制臺(tái)輸出:用戶(hù)id:123

六、跳轉(zhuǎn)到另一個(gè)controller方法

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

controller層:

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

控制臺(tái)輸出:bookId=321 bookId:321

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


網(wǎng)頁(yè)題目:SpringMVC常用客戶(hù)端參數(shù)接收方式詳解
網(wǎng)頁(yè)URL:http://weahome.cn/article/jepdsd.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部