《苍穹外卖》Spring版本不同,Spring3参数请求时需添加@ParameterObject,Swagger才能识别参数
仔细检查代码发现:
SQL语句中的like查询语法错误 : concat('%',#{name},%) 缺少了一个单引号,应该是 concat('%',#{name},'%')
改完之后还有另外一个问题:
但是控制台输出里面,没有正确的识别到
原因:
- 参数传递方式错误 :前端将整个 employeePageQueryDTO 作为一个JSON字符串传递
- Spring MVC参数绑定失败 :后端Controller期望通过URL参数直接绑定到 EmployeePageQueryDTO 对象
- PageHelper分页失效 :当 page=0 时,PageHelper无法正确执行分页查询
修改前端请求方式为:
/admin/employee/page?name=&page=1&pageSize=2
不过为什么我的SpringMVC会没有识别到,没有将URL参数
(如 ?name=&page=1&pageSize=2 )绑定到 EmployeePageQueryDTO 对象的对应字段
视频里面的:
我的:
再次仔细核对了一下代码,也没问题啊
难道又是版本问题吗?
随即我去查看了Springboot官网的一些说明,找到了问题:
#Spring 3.x与Spring 2.x的Swagger差异
- Spring 2.x + Springfox :自动将GET请求的对象参数解析为查询参数
- Spring 3.x + SpringDoc OpenAPI 3 :需要明确添加 @ParameterObject 注解
视频里面的:
