EL表达式
-
全域查找指定的属性,若不存在,则输出空字符串,而不是null
- EL的11个内置对象
- pageScope:
- ${pageScope.name}
- requestScope:
- ${requestScope.name}
- sessionScope:
- ${sessionScope.name}
- applicationScope:
- ${applicationScope.name}
- param:适用于单值的参数,它是一个Map,其中key为参数名,value为参数值
-
<% String data = "fat rabbit"; session.setAttribute("data", data); %> ${data }
-
- paramValues:适用于多值的参数,它是一个Map,其中key为参数吗,value为多个参数值
-
<% String data = "fat rabbit"; char[] datas = data.toCharArray(); session.setAttribute("datas",datas); %> ${datas[0] }
-
- header:适用于单值请求头,它是一个Map,其中key为参数名,value为单值请求头
- headerValues:适用于多值请求头,它是一个Map,其中key为参数名,value为多值请求头
- initParam:获取<context-param>内的参数
-
<!-- 在web.xml配置 --> <context-param> <param-name>fat</param-name> <param-value>rabbit</param-value> </context-param> <!-- 在.jsp文件获取 --> ${initParam.fat }
-
- cookie:Map<String,Cookie>类型,其中key是cookie的name,value是cookie对象
- ${cookie.JSESSIONID.value}
- pageContext:
- ${pageContext.request.contextPath }
- 注意:若没有配置context文件中的path,可能读取的path为""
- pageScope:
- JSTL提供的EL函数库
-
<%-- 导入标签库,pixfix表前缀 --%> <%-- 若报错:cannot resolve taglib with uri, 解决办法:导入jstl.jar和standard.java --%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
-
- EL自定义函数库
-
/** * 类中可以定义0-N个方法,但必须是static,且有返回值 */ public class TestFunction { public static String func(){ return "fat rabbit"; } } <!-- 创建一个tld文件 --> <?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"> <!-- 说明 --> <description>JSTL 1.1 functions library</description> <!-- 显示名称 --> <display-name>JSTL functions</display-name> <!-- --> <tlib-version>1.0</tlib-version> <!-- --> <short-name>muriel</short-name> <!-- --> <uri>http://www.muriel.cn/el.functions</uri> <function> <name>functionA</name> <function-class>com.muriel.fn.TestFunction</function-class> <function-signature>java.lang.String func()</function-signature> </function> </taglib> <!-- 在jsp中可以导入自定义的函数库即其方法--> <%@ taglib prefix="f" uri="/WEB-INF/tlds/test.tld" %> <%--注意方法名必须是tld中配置function里面的name,不然就会报The function *** cannot be located with the specified prefix错误 --%> ${f:functionA()}
-