1. 程式人生 > >SpringMVC中@PathVariable和@RequestParam之間的區別

SpringMVC中@PathVariable和@RequestParam之間的區別

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