咱们已经学习了如何定义一个Controller方法,如何为该方法设置对应的请求URI。假设一个URL请求映射到了定义的Controller方法,该方法如何处理呢?如何获取到参数呢?今天小博老师向你们介绍一个获取URI Template参数的注解@PathVariable。spring
咱们先看一个例子:app
@RequestMapping(value="/boweifeng/{classId}", method=RequestMethod.GET)学习
public String findClass(@PathVariable int classId, Model model){code
}blog
URI模板”/boweifeng/{classId}”指定了默认变量名为classId。当方法被请求时,参数classId的值会被赋值为请求的URI中对应部分的值。好比请求为/boweifeng/12,那么fincClass方法中classId参数会被赋值为12。参数名和URI模板变量名一致能自动赋值。若是二者不一致,则须要在@Pathvariable注解中加入对应的参数,以下面的例子:ip
@RequestMapping(value="/boweifeng/{classId}", method=RequestMethod.GET)get
public String findClass(@PathVariable(“classId”) int clazzTag, Model model){io
}模板
若是URI定义中有多个变量,能够在方法中定义对应数量的@PathVariable注解获取相应的参数值。class
@PathVariable和方法中的参数能够是任何简单数据类型,例如:int,long,Date,等等。spring会自动转换,若是不匹配则抛出TypeMismatchException。