一、EL表达式
JavaBean在JSP中的局限
获取JavaBean属性必须需要实例化
强制类型转化
<%
Employee emp = (Employee)request.getAttribute("emp");
Computer comp = emp.getComputer();
String name = comp.getName();
%>
解决办法:可以使用EL表达式简化
1.什么是EL
EL即Expression Language(表达式语言)
2.EL的功能
替代JSP页面中的复杂代码,主要替代<%= %>
3.EL的语法
${EL exprission }
${bean.name } 或 {bean[“name”] }
${bean.name }实质是调用bean的getName()方法
4.变量属性范围名称
属性范围 | EL中的名称 |
---|---|
page | pageScope,${pageScope.username } |
request | requestScope |
session | sessionScope |
application | applicationScope |
EL表达式默认是从4大作用域中,从小到大的顺序取值,若取到值了,则不会继续向下查找
获取的前提是将参数或对象添加到作用域中,pageContext、request、session、application
<%
Student stu = new Student();
stu.setAge(25);
stu.setName("李四");
pageContext.setAttribute("student",stu);
%>
获取属性:
年龄:${student.age }<br>
姓名:${student.name }<br>
[]方法一般用于集合
年龄:${student["age"] }<br>
姓名:${student{"name"} }<br>
原有写法:
年龄:<%= ((Student)pageContext.getAttribute("student")).getAge() %><br>
姓名:<%= ((Student)pageContext.getAttribute("student")).getName() %><br>
通过EL表达式,获取上个页面提交过来的参数数据:<br>
用户名:${param.userName }<br>
爱好1:${paramValues.hobbies[0] }<br>
爱好2:${paramValues.hobbies[1] }<br>