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工具进行转换后传递