1.RequestMapping 注解类
RequestMapping注解类的属性,分别有 value, method, consumes, produces, params, headers
method:(value="/login",method={RequestMethod.POST,RequestMethod.GET})
顾名思义服务器吃得下:
consumes:(value="/login",consumes={"application/json","text/plain"})
处理返回:
produces:(value="/login",produces="text/plain")
请求须含某参数,才触发处理:
params:(value="/login",params="myParam=myValue")
请求头须含某参数,才处理:
(value="/login",headers="content-type=text/*")
Ant风格和带占位符的URL:
/user/*/login:匹配/user/aaa/login,/user/任意字符/login 等
/user/**/login:匹配/user/login, /user/aaa/bbb/login 等
/user/login??:匹配/user/loginAA, /user/loginbb 等
/user/{userId}:匹配/user/123, /user/234 等
/user/**/{userId}:匹配/user/aaa/bbb/123,/user/aaa/234等
2.四大注解类 Component、Controller、Service、Repository,可带一个参数,代bean名字,注入时可通过名字注入:
@Autowired默认按类型装配,依赖对象须存在,如果允许null,可设required属性为false,如果按名字则结合@Qualifier
@Autowired:默认名称装配,名称可通过name属性指定,如果注解写在setter方法上默认取属性名进行装配。
@Component 是通用标注,为逻辑清晰,还是建议具体点好
@Controller 标注 web 控制器
@Service 标注 Servicec 层的服务
@Respository 标注 DAO 层的数据访问
3.其他注解类
PathVariable注解类 :注解使用占位符,获取请求中参数传入
RequestParam注解类:获取jsp传过来的参数
CookieValue注解类:读取cookies值,赋值给变量,有三属性:value,required,defaultValue
SessionAttributes注解类:个人觉得不如request.getSession()好用
ResponseBody注解类:方法上面ResponseBody。@Controller方法返回对象适当HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区,返回如json,xml等时使用。springmvc配置文件通过,给AnnotationMethodHandlerAdapter初始化7个转换器
RequestHeader注解类:可把Request请求header部分的值绑定到方法的参数
附注:
ModelMap map可放在方法参数中,然后把javabean存进去:map.put(“user”, user);
//方法可能抛出的异常捕获后存到request对象中
try {
User user = service.doLogin(username, password);
map.put("user", user);
} catch (Exception e) {
request.setAttribute("error", e.getMessage());
return "/WEB-INF/jsp/login.jsp";
}
//jsp页面获取error对象中的错误信息
<p style="color: red;">
${error }
</p>