SSM-SpringMVC-深入SpringMVC元件-控制器接收各類請求參數
接受普通請求參數
- 通過參數名稱和 HTTP 請求參數 名稱保持 緻來擷取參數,如果不一緻是沒法擷取到的,這樣的方式允許參數為空。
@RequestMapping("/commonParams”")
public String ModelAndView commonParams(String roleName,String note){
System.out.println(roleName);
System.out.println(note);
ModelAndView mv=new ModelAndView();
mv.setViewName("index");
return "mv";
}
- 使用POJO來管理這些參數,SpringMVC有映射POJO的能力,注意它的屬性和HTTP請求參數名保持一緻
使用@RequestParam注解擷取參數
當參數名稱不一緻時候,可以通過注解@RequestParam重新設定規則
@RequestMapping("/requestParam")
public String ModelAndView requestParam(@RequestParam("role_name") String roleName,String note){
System.out.println(roleName);
System.out.println(note);
ModelAndView mv=new ModelAndView();
mv.setViewName("index");
return "mv";
}
注意:在預設情況下,使用了@RequestParam參數不能為空,否則系統會抛出異常,可以通過配置required為false接解決
@RequestParam(value=“role_name”,required=false) String roleName
使用URL傳遞參數
使用URL形式傳遞參數,這符合RESTFul風格,需要使用@RequestMapping和@PathVaribale兩個注解共同協作完成
//注入角色服務對象
@Autowired
RoleService roleService;
//{id}代表接受一個參數
@RequestMapping("/getRole/{id}")
//注解@PathVariable 表示從 URL 的請求位址中擷取參數
public String ModelAndView requestParam(@PathVaribale("id") Long id){
Role role=roleService.getRole(id);
ModelAndView mv=new ModelAndView();
//綁定資料模型
mv.addObject(role);
//設定JSON視圖
mv.setView(new MappingJackson2JsonView());
return mv;
}
{id}代表處理器需要接受一個由URL組成的參數,且參數名稱為id,那麼方法中的@PathVariable(“id”)表示将擷取這個@RequestMapping中定義名稱為id的參數,就能在方法内擷取這個參數,然後通過服務類擷取角色,綁定視圖,将其轉換JSON輸出
傳遞JSON
使用SpringMVC提供的注解@RequestBody接受參數,還可以使用第三方JSON工具進行轉換後傳遞