@PathVariable,@RequestParam中的name和value

@PathVariable中有个属性value常用,不过里面还有个name。

如果两个属性同时使用会报错的,今天遇到了记录一下,从报错信息上来看name应该是value的别名,它们两个中只有一个能被允许存在。name其实就是我们在前台页面的表单中input中的name,用来解决前后台传入参数不一致的问题。比如前台通过ajax传入后台的参数名是phone,然而后台想接受的phoneNum并且后台代码都已经写好了(全部改的话比较麻烦),那么我们就可以设置name="phone",后台代码不需要改动。不过,name的功能是和alue一样的,name完全等价于value,使用哪一个,只是个人习惯问题(切记不可同时使用,推荐使用value)。

我们来看一下这两个属性的源码。

可以看到String value() default""上面有@AliasFor("name"),同样在String name() default""上面有@AliasFor("value")。所以在两者是完全等价的。

@RequestParam中的name和value属性也是完全等价的。关于@RequestParam和@PathVariable的区别请看博主的另一篇。

记得点赞脱单鸭!!!

你可能感兴趣的:(九阳神功——Spring,Boot)