在EL表达式中,假设某个entity的status属性为char类型,此处假设为'1',在jsp中,对于${entity.status=='1'},我们预期的结果是true,但实际上是false - -!why?是这样的,EL表达式比较偷懒,把char类型数据做了自动转型,所以上面的EL换一种写法就是${49=='1'},其中49是字符'1'进行ASCII转换后的结果,如此当然是false啦。为了避免这种问题,实体属性应该尽量设置为String类型,还有一种不够优雅的解决方法就是使用'1'.charAt(0),类似这样:
${entity.status=='1'.charAt(0)}
以下是国外网友碰到的类似问题: http://stackoverflow.com/questions/10542875/char-comparison-in-el-expression
原标题:当EL遇到char
关键词: