1、表达式与java无关,表达式都是以${开始,以}结束。
2、EL访问java变量不能直接访问,因为得不到数据,要访问数据,需要将其放到作用域中。例如访问String str=”abc”,我们不能通过${str}直接访问,因为获取不到,我们可以这样访问:
pageContext.setAttribute(“a”,str);获取方式${a},与java表达式不同的是,当str=null时,该获取方式获取不到null,而是什么东西都不显示。
3、实例代码:
request.setAttribute("aaa","wuxin");
你好,${requestScope.aaa }
访问javaBean:${隐式对象.id号.属性名字 }例如${sessionScope.user.userName }
4、在EL表达式中定义的变量我们不能使用。
5、要直接从表单中获取值,使用${param.控件名字}
6、获取值的几种方式
7、${“23”+3}得到的结果为26,${“23s”+3}报错
8、打开或者禁用EL表达式:使用isELIgnored=”true(禁用)/false(支持)”
9、${这个里面不能使用java代码,否则会报出服务器的500异常}
EL表达式的常用:
1、从表单提交到另一个页面,使用param( paramValues)例如:
Request.getParameter(“username”)可写成${param.usernam},${paramValues.hobby[2]}
2、从隐式对象中获取数据:例如:session.setAttribute(“hello”,”123”);
Sesson.getAttribute(“hello”);可写成${sessionScope.hello},获取javaBean中的数据,例如session.setAttribute(“user”,user);
User u=(User)Session.getAttribute(“user”);u.getUserName();
可为${sessionScope.user.userName}
当前面没有写隐式对象的时候,例如${ hello},编译器会自动从最小的默认对象开始找,即pageScope、requestScope、sessionScope、applicationScope,找到匹配的显示,没有找到则为null
EL的默认对象:
pageScope、requestScope、sessionScope、applicationScope、param、paramValues、header、headerValues、cookie、、
3、动态赋值:${sessionScope.user[data]},如果data为userSex,则它的值 为${sessionScope.user[“userSex”]}等价于${sessionScope.user.userSex},如果data的值 为userName,则它的值为${sessionScope.user.userName},用.的方式无法动态赋值
4、若要在页面显示El表达式,在EL表达式的前面加上一个反斜杠,例如:${1.2+4.5}