写法一: public ControllerResult orderProcess(@RequestParam(value = "showkerTaskId") Long showkerTaskId,
@RequestParam(value = "showkerId") Long showkerId) {
写法二:
public ControllerResult orderProcess( Long showkerTaskId, Long showkerId) {
只要你前台form表单中name属性和controller中参数写得一样就不需要@requestParam。spring会自动帮你处理
不一样,有两种解决方案:
第一:要使用@RequestParam注解。
第二:如果参数过多,可以封装成一个实体类当做参数传入。
1,如果表单中的字段与方法中的参数名一致的话,会自动设置
2,写的话,可以给表单提交的参数改个名字,如:@RequestParam("user")User u,user是表单提交的,可以换成u
通过@RequestParam注解指定绑定的 URL 参数,也可以前台name定义与后台接收参数一样。
我记得这个注解是用来设定一个参数是否需要传递的吧!@RequestParam(required = false) Integer 参数名,当这个参数没有传递的时候,不会出错,默认为true
不写@RequestParam之所以也“可以”,是因为Spring自动将HTTP表单与后端接口参数做了映射(名称一样就能映射成功),如果不是前端调用而是后端RPC调用(比如FeignClient)则会因为找不到参数而报错,就不可以了,还是得写。