spring mvc注解解释
@Controller:用于标识是处理器类;
@RequestMapping:请求到处理器功能方法的映射规则;
@RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定;
@ModelAttribute:请求参数到命令对象的绑定;
@SessionAttributes:用于声明session 级别存储的属性,放置在处理器类上,通常列出模型属性(如
@ModelAttribute)对应的名称,则这些属性会透明的保存到session 中;
@InitBinder:自定义数据绑定注册支持,用于将请求参数转换到命令对象属性的对应类型;
1.URL路径映射:使用URL映射请求到处理器的功能处理方法;
@RequestMapping(value={"/test1", "/user/create"}):多个URL路径可以映射到同一个处理器的功能处理
方法。
@RequestMapping(value="/users/{userId}"):{×××}占位符, 请求的URL可以是“/users/123456”或
“/users/abcd”,通过6.6.5 讲的通过@PathVariable可以提取URI模板模式中的{×××}中的×××变量。
@RequestMapping(value="/users/{userId}/create") : 这样也是可以的, 请求的URL 可以是
“/users/123/create”。
@RequestMapping(value="/users/{userId}/topics/{topicId}"):这样也是可以的,请求的URL 可以是
“/users/123/topics/123”
2.请求方法映射限定:如限定功能处理方法只处理GET请求;
@RequestMapping(value="/create", method = RequestMethod.GET)
@RequestMapping(value="/methodOr", method = {RequestMethod.POST, RequestMethod.GET}):即请
求方法可以是GET 或POST。
3.请求参数映射限定:如限定只处理包含“abc”请求参数的请求;
@RequestMapping(params="create", method=RequestMethod.GET)表示请求中有“create”的参数名
且请求方法为“GET”即可匹配,如可匹配的请求URL“http://×××/parameter1?create”;
//请求参数不包含create参数名
@RequestMapping(params="!create", method=RequestMethod.GET)//
@RequestMapping(params="submitFlag=create", method=RequestMethod.GET) : 表示请求中有
“submitFlag=create”请求参数且请求方法为“GET” 即可匹配,如请求URL为http://×××
/parameter2?submitFlag=create;
@RequestMapping(params="submitFlag!=create", method=RequestMethod.GET):表示请求中的参数
“submitFlag!=create”且请求方法为“GET”即可匹配,如可匹配的请求URL“http://×××
/parameter1?submitFlag=abc”。
@RequestMapping(params={"test1", "test2=create"}):表示请求中的有“test1”参数名且 有
“test2=create”参数即可匹配,如可匹配的请求URL“http://×××/parameter3?test1&test2=create。
4.请求头映射限定:如限定只处理“Accept=application/json”的请求。