springmvc 开涛 注解式控制器

版本 定义处理器类 处理器映射适配器 备注 支持的注解
2.5前 controller      
2.5 注解

DefaultAnnotationHandlerMapping

AnnotationMethodHandlerAdapter

@Controller

@RequestMapping

@Controller

@RequestMapping

@RequestParam

@ModelAndView

@SessionAttributes

@InitBinder

3.0 ... ... ... @PathVariable

@CookieValue

@RequestHeader

@RequestBody

@ResponseBody

@ResponseStatus

@ExceptionHandler

@PathVariable

 

3.1 ...

RequestMappingHandlerMapping

RequestMappingHandlerAdapter

...  

请求的映射分为四种:URL,方法,参数,头

在处理器类上 可以加 @Controller @RequestMapping,后者主要用于窄化功能处理方法的映射

开涛讲得开启注解的方式 跟 孔浩讲得不同呀,前者是引入两个bean,后者是引入<context><mvc>标签?

前者只会去发现@Controller,@RequestMapping;后者会扫描所有带注解的bean

***-servlet.xml应该放在WEB-INF目录下,这样使用classpath:***-servlet.xml

URL路径映射

普通URL

URL模板

ant风格:http://blog.csdn.net/h396071018/article/details/8278389  ?不能为空,*(0或多个字符) **(0或多个目录)都可以。最长匹配优先

正则表达式:{变量名:正则表达式}

或 的关系:value={"/", "/test"};

请求方法映射

或 的关系:method={RequestMethod.POST, RequestMethod.GET};

如果需要支持OPTIONS、TRACE,请添加DispatcherServlet在web.xml的初始化参数:dispatchOptionsRequest 和 dispatchTraceRequest 为true。

请求参数映射

@RequestMapping(params="create") 有create参数

@RequestMapping(params!="create") 没有create参数

@RequestMapping(params="create=sfp") create=sfp

@RequestMapping(params="create!=sfp") create!=sfp

且 的关系 @RequestMapping(params={"test1", "test2=create"})

@RequestMapping("/user")或@RequestMapping(value="/user")  对路径进行映射
@RequestMapping(params="user")  对参数进行映射
@RequestParam(value="user") 对参数进行映射
 

请求头映射

@RequestMapping(header="Accept") 跟请求参数类似

接下来看生产者,消费者请求限定

 

 

posted on 2015-06-10 20:32  j.w  阅读(331)  评论(0编辑  收藏  举报