一、SpringMVC之控制器及控制器方法
二、SpringMVC的控制器方法
1@Controller
声明此类为控制器类,并交给spring容器管理
控制器: 处理请求的类
控制方法:处理请求的方法
2、 @RequestMapping
@RequestMapping:声明控制器方法,即配置url地址和方法的映射关系
@RequestMapping的属性:
- value:配置url地址
- method : 当前方法可以接收的请求类型,值为post时,当前请求只接受post类型的请求,如果请求方式不匹配:抛出异常,值为get类似。
params : 约束请求参数,接收一个数组
1)值为 username : 请求此方法,必须添加username参数 2)值为!username: 请求此方法,不能携带username参数 3)值为username=zhangsa : 请求此方法,必须携带username的参数,参数的取值必须为张三 (精确匹配字符穿)
@RequestMapping配置位置:可以配置到类上也可以配置到方法上
* 配置到类上,代表此类中的所有请求地址的父地址
* 配置到方法上,代表请求地址
请求完整地址:localhost:8080/project(项目名)/类上地址/方法上的地址
/**
* @RequestMapping :
* 配置url和处理方法(控制方法)的映射关系
* value:配置url地址
* * 可以配置到类上也可以配置到方法上
* 配置到类上,代表此类中的所有请求地址的父地址
* 配置到方法上,代表请求地址
* 请求地址:localhost:8080/project/类上地址/方法上的地址
* 即 localhost:8080/project/user/hello
*
*/
@Controller
@RequestMapping("/user")
public class HelloController {
@RequestMapping(value="/hello")
public String sayHello() {
System.out.println("hello spring mvc 哈哈哈");
return "success"; //WEB-INF/jsps/success.jsp
}
}
关于@RequestMapping的参数
/**
* 处理请求的类:控制器
* 处理请求的方法:控制方法
* @RequestMapping:配置到类上, 一般用于区分操作模块
*/
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(value="/save")
public String saveUser() {
System.out.println("保存用户");
return "success"; ///WEB-INF/jsps/success.jsp
}
/**
* method : 当前方法可以接收的请求类型
* post:当前这个方法只能接收post提交
* 如果请求方式不匹配:抛出异常
*/
@RequestMapping(value="/update",method=RequestMethod.GET)
public String updateUser() {
System.out.println("更新用户");
return "success"; ///WEB-INF/jsps/success.jsp
}
/**
* params : 约束请求参数
* username : 请求此方法,必须添加username参数
* !username: 请求此方法,不能携带username参数
* username=zhangsa : 请求此方法,必须携带username的参数,参数的取值必须为张三 (精确匹配字符穿)
*/
@RequestMapping(value="/delete",params= {"username=zhangsa"})
public String deleteUser() {
System.out.println("更新用户");
return "success"; ///WEB-INF/jsps/success.jsp
}
}