char类型的字段值使用EL表达式比较
char类型的字段值使用EL表达式比较
电脑上的小蚂蚁 发表于1个月前
char类型的字段值使用EL表达式比较
  • 发表于 1个月前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

摘要: EL表达式比较数据库中定义的char类型的字段值

   这两天在处理一个项目上的问题时,遇到了下面的这种情况:

   原理:

    服务端:使用hibernate查询数据库中相关表的部分字段,返回PageFinder类型结果;

    客户端(PC):使用EL表达式${}遍历PageFinder类型结果展示。

   现象:

      客户端在展示时,针对查询出的结果与字符串比较时老是报错,例如:

           <c:if test="${ className[0] == 'C'}">测试</c:if>

   分析过程:

      1.在页面上打印出${ className[0]}值,发现结果也是C,这就莫名其妙了;

      2.网上搜索相关资料,发现一般有这么几种情况:

             a.在编写EL表达式时,后面带入了空格,例如:

                           <c:if test="${ className[0] == 'C'} ">测试</c:if>

                    解决办法:

                         去掉空格,结果为:<c:if test="${ className[0] == 'C'}">测试</c:if>

             b.传值的时候换行了  导致不相等,例如:

                             参考路径:http://bbs.csdn.net/topics/392051062

                   解决办法:

                         去掉换行

      3.按照2.检查发现都不是这些问题,检查查询的表对应的字段,发现数据库中定义的是char(1)类型的,

        感觉客户端页面比较时使用的是char类型和字符串比较,所以不相等。

   解决办法:

       找到C对应的ascII码值,换成<c:if test="${ className[0] == '67' } ">测试</c:if>,

      测试正常,问题解决。

 

 

     

 

 

共有 人打赏支持
粉丝 0
博文 10
码字总数 1908
×
电脑上的小蚂蚁
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: