EL是JSP表达式语言,全称是Expression Language
<jsp:useBean id=“now” class=“java.util.Date” />
${ now.year] } ${now[“year”]}
<%request.setAttribute(“t”, new Student())%>
${t.name}
?
对象访问语法
${user.name}:访问对象user的getName()方法以得到name成员的值。
${list[1]}:访问list对象的第二项。
${map[“key”]}:访问map指定键的值。
?
“.”与“ [ ]”的相同点和差别。
相同点:都可以访问对象的属性。
差别:当属性的名字包含有空格,点号等复杂符号时。使用”.”来访问对象的属性将会出现异常
操作符
? 算术操作符(+,-,*,/,%)
? 逻辑操作符(&&,||,!或and,or,not)
? XML操作符
lt < le <= gt > ge >=
? 比较操作符(>,>=,<,<=,==,!==)—可以自动转换数据类型
? 空操作符(empty)//当值为null时返回true
pageContext:提供对页面属性的访问
pageScope:返回页面范围的变量名,这些名称已映射至相应的值
requestScope:返回对请求对象的属性的访问权限
sessionScope:返回会话范围的变量名,这些名称已映射至相应的值
applicationScope:返回应用范围内的变量,并将变量名映射至相应的值
param:返回客户端的请求参数的字符串值
paramValues:返回映射至客户端的请求参数的一组值
header:返回一个请求标题名称,然后将该值映射至单个字符串值
headerValues:返回映射至请求标题的一组值
cookie:返回映射至单个 Cookie 对象的 Cookie 名称
initParam:返回映射至单个值的上下文初始化参数名称
禁用EL表达式<%@ page isELIgnored ="true|false" %>
EL函数
在jsp头部加上以下语句:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
2. 导入jstl相关的包:
jstl.jar; standard.jar
3. 在页面中使用el函数进行字符串的相关操作
? ${fn:trim(“ abc ”)}
? ${fn:contains(“abcjavaf”, “java”)}
? ${fn:endsWith(“a.txt”, ".txt")}
? ${fn:escapeXml(“<b>hi</b>”)}
? ${fn:indexOf(“terry_xue”, “_")}
? ${fn:join(array, ";")}
? ${fn:length(“abc”)}
自定义EL函数
? 在web/inf下面新建文件 socloud.tld
(参考系统提供的tld文件完成函数的定义)
基中: short-name定义为: h
uri定义为: http://java.socloud
<function>
<name>randomColor</name>
<function-class>net.socloud.functions.ColorMaker</function-class>
<function-signature>String randomColor()</function-signature>
</function>
? 新建jsp文件,在头部导入定义的tld
<%@ taglib uri="http://java.socloud" prefix="h"%>
在样式定义部分加上以下代码:
body{
color: ${h:randomColor()}; }
<jsp:useBean id=“now” class=“java.util.Date” />
${ now.year] } ${now[“year”]}
<%request.setAttribute(“t”, new Student())%>
${t.name}
?
对象访问语法
${user.name}:访问对象user的getName()方法以得到name成员的值。
${list[1]}:访问list对象的第二项。
${map[“key”]}:访问map指定键的值。
?
“.”与“ [ ]”的相同点和差别。
相同点:都可以访问对象的属性。
差别:当属性的名字包含有空格,点号等复杂符号时。使用”.”来访问对象的属性将会出现异常
操作符
? 算术操作符(+,-,*,/,%)
? 逻辑操作符(&&,||,!或and,or,not)
? XML操作符
lt < le <= gt > ge >=
? 比较操作符(>,>=,<,<=,==,!==)—可以自动转换数据类型
? 空操作符(empty)//当值为null时返回true
pageContext:提供对页面属性的访问
pageScope:返回页面范围的变量名,这些名称已映射至相应的值
requestScope:返回对请求对象的属性的访问权限
sessionScope:返回会话范围的变量名,这些名称已映射至相应的值
applicationScope:返回应用范围内的变量,并将变量名映射至相应的值
param:返回客户端的请求参数的字符串值
paramValues:返回映射至客户端的请求参数的一组值
header:返回一个请求标题名称,然后将该值映射至单个字符串值
headerValues:返回映射至请求标题的一组值
cookie:返回映射至单个 Cookie 对象的 Cookie 名称
initParam:返回映射至单个值的上下文初始化参数名称
禁用EL表达式<%@ page isELIgnored ="true|false" %>
EL函数
在jsp头部加上以下语句:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
2. 导入jstl相关的包:
jstl.jar; standard.jar
3. 在页面中使用el函数进行字符串的相关操作
? ${fn:trim(“ abc ”)}
? ${fn:contains(“abcjavaf”, “java”)}
? ${fn:endsWith(“a.txt”, ".txt")}
? ${fn:escapeXml(“<b>hi</b>”)}
? ${fn:indexOf(“terry_xue”, “_")}
? ${fn:join(array, ";")}
? ${fn:length(“abc”)}
自定义EL函数
? 在web/inf下面新建文件 socloud.tld
(参考系统提供的tld文件完成函数的定义)
基中: short-name定义为: h
uri定义为: http://java.socloud
<function>
<name>randomColor</name>
<function-class>net.socloud.functions.ColorMaker</function-class>
<function-signature>String randomColor()</function-signature>
</function>
? 新建jsp文件,在头部导入定义的tld
<%@ taglib uri="http://java.socloud" prefix="h"%>
在样式定义部分加上以下代码:
body{
color: ${h:randomColor()}; }