关于EL表达式容易出现的问题

最近写EL表达式发现了在页面不能显示的问题

抛出了如下异常:

Property xxx not found on type com.jwat.trade.entities.xxx

原因:

JAVA规范:包名小写,类名首字母大写,成员变量驼峰命名法(首字母小写)

由于EL表达式里面的类的成员变量首字母大写所以造成了无法识别,原因是EL表达式其实是调用了对应成员变量的getXxx的方法,采用的反射来调用方法的,内部原理我还不是很清楚,但大概猜的是由于要将成员变量首字母小写变成大写来拼getXxx方法,如果已经大写则会出现问题


再顺便说写另外几个以前遇到的问题吧

1.变量范围

如果不写明范围,如${a},则会依次从Page,Request,Session,Application的范围里面寻找a,如果找不到,页面会显示空白。

注意param的范围里的变量需要写明范围,省略会找不到


2. 【】与.的区别

这两种运算符都可以获取对象的属性,但用【】在有些情况下会更好写

当要存取的属性名称中包含一些特殊字符,如 . 或– 等并非字母或数字的符号,就一定要使用[ ]
§${sessionScope.user.first-name}  错误
§${sessionScope.user[‘first-name’]}  正确


3.判断两个el表达式相等
如${requestScope.t}和${sessionScope.T}

应该使用${requestScope.t==sessionScope.T}

不用这样${requestScope.t}==${sessionScope.T}


暂时就这么多吧,以后遇到再添加

最后加一个el表达式参考的链接,总结的很不错:EL表达式



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值