@RequestParam @PathVariable 參數綁定注解詳解


@RequestParam

首先我們需要知道@RequestParam注解主要有哪些參數

1。value:請求中傳入參數的名稱,如果不設置后台接口的value值,則會默認為該變量名。比如上圖中第一個參數如果不設置value="page",則前端傳入的參數名必須為pageNum,否則在后台接口中pageNum將接收不到對應的數據

2。required:該參數是否為必傳項。默認是true,表示請求中一定要傳入對應的參數,否則會報404錯誤,如果設置為false時,當請求中沒有此參數,將會默認為null,而對於基本數據類型的變量,則必須有值,這時會拋出空指針異常。如果允許空值,則接口中變量需要使用包裝類來聲明。

3。defaultValue:參數的默認值,如果請求中沒有同名的參數時,該變量默認為此值。注意默認值可以使用SpEL表達式,如"#{systemProperties['java.vm.version']}"

如果在請求中傳入多個同名參數,比如:url?userName=zhl&userName=holley時怎么辦?

其實此時傳入的數據格式是:"zhl,holley",即多個數據之間使用逗號分隔開,在后台接口中可以使用數組或者list類型的變量來接收:

public String requestparam8(@RequestParam(value="userName") String []  userNames) 
或者
public String requestparam8(@RequestParam(value="list") List<String> list)

@PathVariable綁定uri模板變量值:通過@PathVariable可以綁定占位符參數到方法參數中

@PathVariable是spring3.0的一個新功能:接收請求路徑中占位符的值

語法:

  @PathVariable("xxx")
  通過 @PathVariable 可以將URL中占位符參數{xxx}綁定到處理器類的方法形參中@PathVariable(“xxx“)
 
  @RequestMapping(value=”user/{id}/{name}”)
  請求路徑:http://localhost:8080/hello/show5/1/james

測試:

@Controller
@RequestMapping("hello")
public class HelloController2 {
    /**
     *3、占位符映射
     * 語法:@RequestMapping(value=”user/{userId}/{userName}”)
     * 請求路徑:http://localhost:8080/hello/show5/1/james
     * @param ids
     * @param names
     * @return
     */
    @RequestMapping("show5/{id}/{name}")
    public ModelAndView test5(@PathVariable("id") Long ids ,@PathVariable("name") String names){
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg","占位符映射:id:"+ids+";name:"+names);
        mv.setViewName("hello2");
        return mv;
    }
}

 

 

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM