JavaBean在JSP中的局限获取JavaBean属性必须要实例化强制类型转化<%Employee employee = (Employee)request.getAttribute("employee");Computer comp = employee.getComputer();String manufacturer = comp.getManufacturer();%>
如果页面编写出现逻辑错误,将会导致代码执行错误,,并且JSP页面编译页面时也会产生错误
解决办法使用EL表达式简化
什么是ELEL即Expression Language(表达式语言)EL的功能替代JSP页面中的复杂代码EL的语法${ EL exprission }${ bean.name } 或 ${ bean[‘name’] }
${bean.name}实质是调用bean的getName()方法
注: 1 el通过.和[]来存取数据。 例如${applicationScope.user.userName}或者${applicationScope.user["userName"]}
2如果存取的属性名称包含一些特殊符号,如"."或者是"-"等非字母或数字符号必须用[]
3 applicationScope.user["user-Name"]
4如果使用变量来传入,那么也只能使用[].例如
<%Stringdata="username";%>
${applicationScope.user[data]}
5当然有四个隐含对象:applicationScope,sessionScope,requestScope,pageScope.与application ,session,request,pageContext相对应.例如applicationScope用来获取application范围的属性值
自动转换类型EL得到某个数据时可以自动转换类型对于类型的限制更加宽松使用简单相比较在JSP中嵌入Java代码,EL应用更简单
EL语法
以“${”作为开始,以“}”作为结束
直接使用变量名获取值$${ username }
变量属性范围名称
属性范围 EL中的名称pagepageScope,例如${pageScope.username},表示在page范围内查找username变量,找不到返回NullrequestrequstScopesessionsessionScopeapplicationapplicationScope
EL运算符运算符”[ ]”运算符”.”作用:获取对象属性获取对象集合中的数据在Session中保存了一个(list)集合users
简单应用:输出姓名显示
<% Map names = new HashMap(); names.put("one","LiYang"); names.put("two","WangHua"); request.setAttribute("names",names);%>姓名:${names.one}<br/>姓名:${names["two"] }<br/>
EL隐式对象介绍
对象名称说 明pageScope返回页面范围的变量名,这些名称已映射至相应的值requestScope返回请求范围的变量名,这些名称已映射至相应的值sessionScope返回会话范围的变量名,这些名称已映射至相应的值applicationScope返回应用范围内的变量,并将变量名映射至相应的值param返回客户端的请求参数的字符串值paramValues返回映射至客户端的请求参数的一组值pageContext提供对用户请求和页面信息的访问
使用了EL表达式可以简化JSP页面代码,但是如果需要进行逻辑判断怎么办?
点击查看JSTL标签库介绍
在人生的大海中,我们虽然不能把握风的大小,却可以调整帆的方向。