项目场景:
今天在写一个jsp+servlet的功能时,jsp报错了这个bug
问题描述
提督并没有第一时间百度,而是去测试了自己的代码(那时候并不认为是jsp的bug,测试了dao层,service层,都没问题)然后才把注意力放在jsp上,发现是el表达式的问题(看bug很重要),现在来看看el表达式展示数据的本质:
el表达式在你获取对象时,自动把你的属性名转换成字符串,并把首字母大写,进行拼接(“get”+属性名),然后通过反射的方式获取到get方法,返回属性值。实际上就是调用了一遍JavaBean里面的某属性的get函数。
提督pojo的字段名刚好撞上了:
总所周知,Boolean的set get方法会变成isXX(), 我这个字段有is了,就只会变成getOff();
public Boolean getOff() { return isOff; }
最好把它改成这样就好了