Spring:4.2.0 mybatis:3.4.1
处理request body部分的注解:@RequesParam、@RequestBody
处理request uri部分的注解:@PathVariable
处理request header部分的注解:@RequestHeader、@CookieValue
处理attribute类型的注解:@SessionAttributes、@ModelAttribute
使用@Controller不用实现特定的接口,@Controller注解的控制器可以支持同时处理多个请求动作
在Spring MVC配置文件中加入头文件
如下:自动识别org.fkit.controller包及其子包下的注解
配置:springmvc-config.xml文件配置
使用:
@Controller
public class HelloController2
@RequestMapping可以用来注释一个控制器类,也可以注释方法。
表示该控制器处理的所有请求都被映射到value属性所指示的路径下。
@Controller
@RequestMapping(value="request")
public class HelloController2{
private static final Log logger = LogFactory.
getLog(HelloController2.class);
@RequestMapping(value="/hello")
public ModelAndView hello(){
hello方法被映射为如下URL:
spring:web project 工程名
http://localhost:8080/spring/request/hello
Model:
User user = (User) model.asMap().get("user");
ModelMap:
User user = (User) modelMap.get("user");
ModelAndView
User user = (User)mv.getModel().get("user");
//假设url请求:localhost:8080/spring/login?loginname=jack&password=123456
@RequestMapping(value="/login")
public void login(
@RequestParam(value="loginname" required=true) String loginname,
@RequestParam(value="password") String password){
//loginname必须被绑定
//将请求参数中loginname参数的值和password参数的值赋值给参数loginname和password
//此刻loginname=jack password=123456
}
获取请求URL中的动态参数
只支持一个属性
//假设请求URL:localhost:8080/spring/pathVariableTest/120
@RequestMapping(value="/pathVariableTest/{userId}")
public void pathVariableTest(@PathVariable Interget userId){
//根据请求url此时userId=123
}
用于将请求头的信息区数据映射到功能处理方法的参数上
@RequestMapping(value="/requestHeaderTest")
public void requestHeader(
@RequestHeader(value="User-Agent") String userAgent,
@RequestHeader(value="Accept") String[] accepts){
//将请求头User-Agent和Accept的值赋值给userAgent和accepts
}
用于将请求的Cookie数据映射到功能处理方法的参数上
@RequestMapping(value="/cookieValueTest")
public void cookieValue(
@CookieValue(value="JSESS),defaultValue="") String sessionId){
//自动将JSESS值设置到sessionId参数上
}
允许我们有选择地指定Model中的哪些属性需要转存到HttpSession对象当中
这样不止request域对象可以访问存入httpSession中的对象
session域对象也可以访问