错误总结
错误1:
@ApiParam(name = "catId", value="分类id")
@RequestParam Integer catId,
@ApiParam(name = "sort", value="排序",required = false)
@RequestParam(value = "sort") String sort,
@ApiParam(name = "page", value="页码",required = false)
@RequestParam(value = "page") Integer page,
@ApiParam(name = "pageSize", value="记录数",required = false)
@RequestParam(value = "pageSize") Integer pageSize
例如上述代码,我们在用Swagger注释时,使用了required = false,但是我们Swagger2实际测试时这些参数都不能为空,并且在前端测试也会报错,原因时后端的required = false并没有生效,因为我们请求参数用了@RequestParam,默认了required=true;所以此处我们可以选择不用这个注释,或者是在@RequestParam后面加上required = false。如下:
@ApiParam(name = "catId", value="分类id")
@RequestParam Integer catId,
@ApiParam(name = "sort", value="排序")
@RequestParam(value = "sort",required = false) String sort,
@ApiParam(name = "page", value="页码")
@RequestParam(value = "page",required = false) Integer page,
@ApiParam(name = "pageSize", value="记录数")
@RequestParam(value = "pageSize",required = false) Integer pageSize
错误2:
在我们编写mapper层时,我们应该先编写mapper接口,再去编写xml文件,具体错误原因得看个人,我这里遇到得一个问题就是,我先编写了mapper.xml文件中的以下片段:
i.cat_id = #{paramsMap.catId}
再去编写mapper接口
public List<SearchItemsVO> searchItemsByThirdCat(@Param("paramsMap") Map<String,Object> map);
但是这个paramsMap.catId并不会匹配到mapper接口的paramsMap,具体原因不是很清楚,只能以后先编写接口再编写xml文件了。