1.controller
controller注解用于指示spring类的实例是一个控制器
@Controller用于标记一个类,使用它标记的类就是Spring MVC Controller的对象,即一个控制器。
为了保证Spring能找到控制器,需要完成两件事:
①:在Spring MVC的配置文件中引入 spring-context
②:使用<context:component-scan class="指定扫描的包"/>元素,作用为扫描指定位置的包
2.RequestMapping
@RequestMapping注解可以用来注释一个控制器类
除了可以修饰类还可以修饰方法
@RequestMappping注解支持的属性
①value:用于将指定请求的实例地址映射到方法上
②name:给映射地址一个指定的别名
③method:映射指定的方法类型(post,get)
④consumes:指定请求提交内容的类型
⑤produces:指定返回内容的类型,返回的内容必须是request请求中包含的内容
⑥params:指定request中必须包含的数值
⑦headers:指定必须包含给定的数值时,方法才被执行
⑧path:在方法层上支持相对路径
RequestMapping-PathVariable注解
@PathVariable 映射 URL 绑定的占位符
jsp
<a href="springmvc/testPathVariable/1">Test PathVariable</a>
java code
/*** @PathVariable 可以来映射 URL 中的占位符到目标方法的参数中.* @param id* @return*/
@RequestMapping("/testPathVariable/{id}")
public String testPathVariable(@PathVariable("id") Integer id)
{
System.out.println("testPathVariable: " + id);
return SUCCESS;
}
3.RequestParam
@RequestParam来映射请求参数
value:值即请求参数的参数名
required 该参数是否为必须,默认为true
defaultValue: 请求参数的默认值
4.RequestHeader
@RequestHeader映射请求头(用的机会较少)
5.CookieValue
@CookieValue 映射一个Cookie值(用的机会较少)
6.RequestAttribute
@RequstAttribute 该注解用于访问由请求处理方法、过滤器或者拦截器创建的、预先存在于Request作用域中的属性。
7.SessionAttribute
@SessionAttribute 该注解用于访问由请求处理方法、过滤器或者拦截器创建的、预先存在于Session作用域中的属性。
8.SessionAttributes
@SessionAttributes 该注解允许我们有选择的指定Model中的那些属性转存到HttpSession对象中
该注解只能放在类的上面,而不能修饰方法
value:可以通过属性名指定需要放到会话属性
tapes:也可以通过模型属性的对象类型指定哪些模型属性需要放到会话中
9.ModelAttribute(重要)
@ModelAttribute与@RequestAttribute 同时注解不同的方法时,@ModelAttribute要优先被调用
① @ModellAttribute(value=XX"")注释返回具体类的方法
value的默认值XX,用来指定model属性名称,而model属性值就是@ModellAttribute注释方法的返回值。
② @ModelAttribute 注释void返回值的方法(要在方法中加入一个Model类型参数)
将@RequstParam中的参数添加到Model类型中,,便可以通过requestScope.XX的方式获取属性值。
③ @ModelAttribute 注解返回具体类的方法
将return 的类型存放入Model类型中
④@ModelAttribute与@RequestMapping同时注释一个方法
@RequestMapping注释的方法,返回值就不是一个视图名称,而是Model的属性值
Model的属性值则由@ModelAttribute的value的值指定。
⑤@ModelAttribute注释一个方法的参数(最常用)
一个对象被@ModelAttribute注解时,前台控制的值会自动入参道此对象的同名属性中。
待续。。。。。