我觉得你的问题基本上是在问"RequestParam是什么,为什么要使用它?"
RequestParam允许你将方法参数绑定到web请求参数。在没有其他属性的情况下,你的示例告诉Spring需要一个name
和age
参数,并且Spring将知道将这两个参数与传入的请求关联起来。你可以选择将required
设置为false
,使该参数变为可选的:
public String PrintInfo(@RequestParam("name", required = false) String name,
@RequestParam("age") int age) {
作为一项非常有用的功能,你还可以在收到请求时提供一个defaultValue
,以防获取到空值。那么你可以这样做:
public String PrintInfo(@RequestParam("name", defaultValue="John Doe") String name,
@RequestParam("age") int age) {
使用它,您永远不会处理空名称。
最后,它还执行一些神奇的类型转换,例如自动使用Integer
类型。在您的示例中,您可以使用:
public String PrintInfo(@RequestParam("name") String name,
@RequestParam("age") Integer age) {
如果你没有加上RequestParam
注解,Spring也会自动帮你封装参数,无需额外的工作。
不加注解本身并没有问题,但是实际上你在第二种情况下拒绝了Spring的这些特性。
另外:
@RequestMapping(value="/print")
可以简写为@RequestMapping("/print")