EL表达式

EL表达式:${EL表达式}

1、获取数据:

1、EL表达式只能获取四大域中的数据。
2、执行时会调用pageContext.findAttribute(),分别从page,request,session,application中查找相应的对象,找到则返回该对象,找不到则返回”“,不是返回null。EL表达式中永远不会出现空指针异常。
3、p.name:调用域中名称为p对象的getName方法,点运算符是用于获取属性的取值的。
4、.运算符>[]运算符:.运算符能做的,[]也能做。[]能做的,.不一定能做。
如: p.name==  {p[‘name’]}==${p[“name”]}
[]运算符优秀在可以取不符合Java命名规范的东西。

2、数学逻辑运算:

1、empty运算符:如果判断的对象是null或者空字符串,都返回true。对于集合,即使集合对象本身不是null,没有任何元素,也返回true。

2、EL表达式不支持字符串连接操作。

3、获取JSP的内置对象(11大EL内置对象):

1、不要与JSP的内置对象和范围名称搞混;
2、11大EL隐式对象中,其中一个(pageContext)是表示自身对象外,其余都是表示的Map结构
3、内置对象如下:

EL隐式对象名称            Java类型                   备注                             
pageContext         javax.servlet.jsp.PageContext   与JSP中的内置对象完全相同

剩余的都是代表的Map集合
pageScope           java.util.Map                   代表着PageContext页面范围域那个Map
requestScope        java.util.Map                   代表着ServletRequest请求范围域那个Map
sessionScope        java.util.Map                   代表着HttpSession会话范围域那个Map
applicationScope    java.util.Map                   代表着ServletContext应用范围域那个Map

param               java.util.Map                   代表着请求参数。key:请求参数的名称。value:请求参数的值,它是一个字符串。
paramValues         java.util.Map                   代表着请求参数。key:请求参数的名称。value:请求参数的值,它是一个字符串数组。

header              java.util.Map                   代表着请求消息头。key:头名称。value:头值,它是一个字符串。
headerValues        java.util.Map                   代表着请求消息头。key:头名称。value:头值,它是一个字符串数组。

cookie              java.util.Map                   代表客户端提交的Cookie的Map。key:cookie的name。value:cookie对象本身
initParam           java.util.Map                   代表着全局初始化参数(web.xml中context-param)key:参数名称。value:参数值

4、调用普通类的静态方法(EL函数—自定义标签):

a、编写一个普通的java类,提供一个静态方法,如:

public class FunctionDemo {
public static String toUpperCase(String str){
return str.toUpperCase();
    }
}

b、在JavaWeb应用的WEB-INF目录下建立一个扩展名是tld(taglib definition)的XML文件(参考Tomcat中的示例)。

<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"version="2.0"> 
<tlib-version>1.0</tlib-version>
<short-name>myfn</short-name>
<uri>http://www.itcast.cn/myfn</uri>
<function><!-- 定义函数 -->
<name>toUppercase</name>
<function-class>cn.itcast.el.FunctionDemo</function-class>
<function-signature>java.lang.String toUpperCase( java.lang.String )</function-signature>
</function>
</taglib>

c、(可选步骤)前提是把tld文件放到了WEB-INF目录下。
告知应用,tld文件和tld中的uri的对应。修改web.xml,增加以下内容:

<jsp-config>
    <taglib>
    <taglib-uri>http://www.itcast.cn/myfn</taglib-uri>
    <taglib-location>/WEB-INF/myfn.tld</taglib-location>
    </taglib>
</jsp-config>

d、在JSP中使用。
用taglib指令,引入自定义的EL函数库

<%@ taglib uri="http://www.itcast.cn/myfn" prefix="myfn"%>
${myfn:toUppercase(p)}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值