天天看點

SSM-SpringMVC-深入SpringMVC元件-控制器接收各類請求參數SSM-SpringMVC-深入SpringMVC元件-控制器接收各類請求參數

SSM-SpringMVC-深入SpringMVC元件-控制器接收各類請求參數

接受普通請求參數

  1. 通過參數名稱和 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";
    }
           
  1. 使用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工具進行轉換後傳遞

繼續閱讀