Spring MVC一些常见注解的使用(一)java
关于url的一些注解正则表达式
@PathVariablespring
直接获取url上的指定值,用法示例:mvc
@RequestMapping(value = "/comIncomeType/{userId}/test", method = RequestMethod.GET) @ResponseBody public JsonAndView incomeType(@PathVariable("userId")String userId ) { JsonAndView jv = new JsonAndView(); jv.addData("key",userId); return jv; }
@RequestMappingapp
这个注解是你们都比较经常使用的的一个注解,可是一个比较有用的是这个注解提供url模版的正则表达式(应该是3.0之后的特性)用法以下:url
@RequestMapping(value = "/comIncomeType/{userId:[0-9]}/test", method = RequestMethod.GET) @ResponseBody public JsonAndView incomeType(@PathVariable("userId")String userId ) { JsonAndView jv = new JsonAndView(); jv.addData("key",userId); return jv; }
这个时候userId就只支持就0到9的数字,其余的所有不匹配。spa
@MatrixVariablecode
这个注解是专门在,作参照的时候使用,这种url:com/comIncomeType/1;p=2下使用,不过我在实现用例的时候法相,spring mvc 4.0下面这个注解还可能有一些bug,当模版url使用了正则表达式的时候,后面的那些值是拿不到的,后面有机会去看看实现上是否是真的bug。xml
@RequestMapping(value = "/comIncomeType/{userId}", method = RequestMethod.GET) @ResponseBody public JsonAndView incomeType(@MatrixVariable(value="p" ,pathVar="userId")String p) { System.out.println(p); JsonAndView jv = new JsonAndView(); jv.addData("key","nihao"); return jv; }
当有不少url上不止一个矩阵参数的时候,能够使用Map<String,String>作参数就不用指定value值了。注意的是要使用的时候,配置文件上必定要配置io
<mvc:annotation-driven enable-matrix-variables="true"/>