SpringMVC中@PathVariable和@RequestParam之間的區別
阿新 • • 發佈:2018-11-06
@PathVariable繫結URI模板變數值
@PathVariable是用來獲得請求url中的動態引數的
@PathVariable用於將請求URL中的模板變數對映到功能處理方法的引數上。//通俗來講配置url和方法的一個關係
@RequestMapping("/item/{itemId}") @ResponseBody private TbItem getItemById(@PathVariable Long itemId) { TbItem tbItem = itemService.getItemById(itemId); return tbItem;}
在SpringMVC中獲得引數主要有兩種方法:
第一種是request.getParameter("name"),例如:
@RequestMapping("/itemEdit") public ModelAndView queryItemById(HttpServletRequest request) { // 從request中獲取請求引數 String strId = request.getParameter("id"); Integer id = Integer.valueOf(strId); // 根據id查詢商品資料 Item item = this.itemService.queryItemById(id); // 把結果傳遞給頁面 ModelAndView modelAndView = new ModelAndView(); // 把商品資料放在模型中 modelAndView.addObject("item", item); // 設定邏輯檢視 modelAndView.setViewName("itemEdit"); return modelAndView;}
第二種是用註解@RequestParam直接獲取
@RequestParam註解主要的引數:
value:引數名字,即入參的請求引數名字,如username表示請求的引數區中的名字為username的引數的值將傳入;
required:是否必須,預設是true,表示請求中一定要有相應的引數,否則將報404錯誤碼;
defaultValue:預設值,表示如果請求中沒有同名引數時的預設值。
@RequestMapping("/itemEdit") public String queryItemById(@RequestParam(value = "itemId", required = true, defaultValue = "1") Integer id, ModelMap modelMap) { // 根據id查詢商品資料 Item item = this.itemService.queryItemById(id); // 把商品資料放在模型中 modelMap.addAttribute("item", item); return "itemEdit";}