随手记一写BUG

本文档介绍了两个常见的技术问题及解决方案:一是Swagger无法识别包含斜杠的@ApiModel注释,解决方案是将斜杠替换为其他分隔符;二是MyBatis中OGNL表达式在判断字符串相等时出现错误,由于'Y'被解析为char类型导致比较失败,解决方法是使用'.toString()'或双引号包裹字符串进行比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、swagger 不能识别斜杠问题

  • Swagger Error
    • Resolver error at paths./api/xxx/xxx.post.parameters.0.schema.$ref
    • Could not resolve reference because of: Could not resolve pointer: /definitions/PageCondition«xxx» does not exist in document
  • 原因
    • @ApiModel("xxx/xxx列表查询条件")
    • 在API注释中出现斜杆 /,Swagger 无法识别斜杆。
  • 解决方案
    • 去掉斜杆改为 @ApiModel("xxx、xxx列表查询条件")

2、MyBatis if 标签判断字符串相等

  • 问题
    • <if test="sex=='Y'"> and 1=1 </if> 无法进入 if 标签
  • 原因
    • 因为 MyBatis 使用 OGNL 表达式进行解析,会把 ‘Y’ 解析为字符
    • 在单引号内只有一个字符的情况下,OGNL会将其以 Java 中的 char 类型进行解析,那么此时 char 类型与参数 String 类型用等号进行比较,结果一定 false。
  • 解决方案
    • <if test="sex=='Y'.toString()">
    • <if test = 'sex== "Y"'>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值