SpringMVC 学习笔记(1)
2017-11-06 本文已影响0人
繁页
@RequestMapping注解
RequestMaping是用于处理请求地址映射的注解,可作用于类或方法上。作用于类上时,表示该类中所有方法请求响应的地址均以该地址为父路径。
该注解接口中定义了7个属性
public interface RequestMapping extends Annotation {
// 指定映射的名称
public abstract String name();
// 指定请求路径的地址
public abstract String[] value();
// 指定请求的方式,是一个RequsetMethod数组,可以配置多个方法
public abstract RequestMethod[] method();
// 指定参数的类型
public abstract String[] params();
// 指定请求的header值
public abstract String[] headers();
// 指定数据请求的格式
public abstract String[] consumes();
// 指定返回的内容类型
public abstract String[] produces();
}
默认@RequestMapping("/xxx/xxx")
即指定value=/xxx/xxx
指定请求方式为Post@RequestMapping(value = "/xxx/xxx", method = RequestMethod.POST)
@PathVariable注解
使用@PathVariable来接收request请求地址中的动态参数,参数值需要在url进行占位,当方法参数名和请求地址中变量名不一致时,需要指定变量名@PathVariable(value = "page", defaultValue = "page")
即value值为page,如果本次请求没有携带这个参数,或者参数为空,那么就会启用默认值
@RequestMapping("/{page}")
public String showPage(@PathVariable String page) {
return page;
}
@RequestParam注解
使用@RequestParam接收前端参数比较方便,而当请求参数不存在时会有异常发生,可以通过设置属性required=false解决@RequestParam(value="username", required=false)
/**
* url = "localhost:8080/xx?username=${username}&password=${password}"
*/
@RequestMapping("/addUser")
public String addUser(@RequestParam("username") String username,@RequestParam("password") String password) {
System.out.println("username is:"+username);
System.out.println("password is:"+password);
return "/index";
}
SpringMVC中Controller层获取请求参数的几种方式
- 直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交
- 通过HttpServletRequest接收,post方式和get方式都可以
- 通过一个pojo对象来接收,post方式和get方式都可以
- 使用@ModelAttribute注解获取post请求的form表单数据
- 使用@PathVariable注解获取路径中的参数
- 使用@RequestParam注解绑定请求参数到方法入参