@Pathvariable主要是通过/来传输参数,本质是从url模板来填充,value:用来绑定路径中所传递的值,如果参数名称与路径中所传名称相同则不需要使用value属性,如果不同则需要通过value属性去绑定

@Pathparam主要是通过?来传参数,本质是从url模板来填充,他的参数不会写在后端的请求路径上,在请求发出时会拼接到请求路径,所以要求value属性的值要和其request中的键相同

@Requestparam也是通过?来传参数,本质是从url模板来填充

对于@Requestparam注解主要有三个参数:

  1. value:请求中传入参数的名称,如果不设置后台接口的value值,则会默认为该变量名。比如上图中第一个参数如果不设置value=“page”,则前端传入的参数名必须为pageNum,否则在后台接口中pageNum将接收不到对应的数据
  2. required:该参数是否为必传项。默认是true,表示请求中一定要传入对应的参数,否则会报404错误,如果设置为false时,当请求中没有此参数,将会默认为null,而对于基本数据类型的变量,则必须有值,这时会抛出空指针异常。如果允许空值,则接口中变量需要使用包装类来声明。
  3. defaultValue:参数的默认值,如果请求中没有同名的参数时,该变量默认为此值。注意默认值可以使用SpEL表达式,如"#{systemProperties[‘java.vm.version’]}