JSP表达式语言
① EL关键字列表
div - 除(/) mod - 取余(%) eq - 等于(==) ne - 不等于(!=)
lt - 小于(<) gt - 大于(>) le - 小于等于(<=) ge - 大于等于(>=)
and - 逻辑与(&&) or - 逻辑或(||) not - 逻辑非(!) true - 逻辑真
false - 逻辑假 null - 空值 instanceof - empty - 空值测试运算符
② EL内建对象
----------------------------------------------------
隐含对象 类型 说明
----------------------------------------------------
pageContext java.util.Map 表示此JSP的PageContext对象
pageScope java.util.Map 取得Page共享范围的属性名字所对应的值
requestScope java.util.Map 取得Request共享范围的属性名字所对应的值
sessionScope java.util.Map 取得session共享范围的属性名字所对应的值
applicationScope java.util.Map 取得application共享范围的属性名字所对应的值
param java.util.Map 功能同request.getParameter()方法
paramValue java.util.Map 功能同request.getParameterValues()方法
header java.util.Map 功能同request.getHeader()方法
heraderValues java.util.Map 功能同request.getHeaders()方法
cookie java.util.Map 功能同request.getCookies()方法
initParam java.util.Map 功能同application.getInitParameter()方法
----------------------------------------------------------
③ EL运算符
[] .
()
- ! empty
* / %
+ -
< > <= >=
== !=
&&
||
${ A ? B : C }
④ EL中的自定义函数
jstl自带的标签有时候可以满足不了我们的需求,这时我们就要用到自定义函数。。。
新建一个类,定义好所需要的方法。。。
Java代码
package com.cw.common;
/**
* 定义EL自定义函数
*
* @author:陈伟
* @date:2008-5-15
*
*/
public class UFunction {
/**
* 获取一个字符串的长度
*
* @author 陈伟
* @date 2008-5-15
* @param str
* @return int
*/
public static int getLen(String str) {
return str.length();
}
/**
* 截取字符串
*
* @author 陈伟
* @date 2008-5-15
* @param str
* @param start
* @param end
* @return String
*/
public static String substr(String str, int start, int end) {
return str.substring(start, end);
}
/**
* 两数相除获取整数结果
*
* @author 陈伟
* @date 2008-5-15
* @param first
* @param second
* @return int
*/
public static int chufa(int first, int second) {
return first / second;
}
}
package com.cw.common;
/**
* 定义EL自定义函数
*
* @author:陈伟
* @date:2008-5-15
*
*/
public class UFunction {
/**
* 获取一个字符串的长度
*
* @author 陈伟
* @date 2008-5-15
* @param str
* @return int
*/
public static int getLen(String str) {
return str.length();
}
/**
* 截取字符串
*
* @author 陈伟
* @date 2008-5-15
* @param str
* @param start
* @param end
* @return String
*/
public static String substr(String str, int start, int end) {
return str.substring(start, end);
}
/**
* 两数相除获取整数结果
*
* @author 陈伟
* @date 2008-5-15
* @param first
* @param second
* @return int
*/
public static int chufa(int first, int second) {
return first / second;
}
}
再建一个tld文件放在WEB-INF目录下面对其进行配置,
Java代码
<?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>len</short-name>
<function>
<description>calculate string length</description><!-- 对这个EL方法的描述 -->
<name>getLen</name><!-- 调用EL方法的名称 -->
<function-class>com.cw.common.UFunction</function-class>
<function-signature>
int getLen(java.lang.String)
</function-signature>
<example>${len:getLen(str)}</example><!-- 例如 -->
</function>
<function>
<description>substring</description>
<name>substr</name>
<function-class>com.cw.common.UFunction</function-class>
<function-signature>
java.lang.String substr(java.lang.String,int,int)
</function-signature>
</function>
<function>
<description>chufa</description>
<name>chufa</name>
<function-class>com.cw.common.UFunction</function-class>
<function-signature>int chufa(int,int)</function-signature>
</function>
</taglib>
<?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>len</short-name>
<function>
<description>calculate string length</description><!-- 对这个EL方法的描述 -->
int getLen(java.lang.String)
java.lang.String substr(java.lang.String,int,int)
最后一步就是调用了
Java代码
<%@ page language="java" pageEncoding="gbk"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="/WEB-INF/mytag.tld" prefix="myTag" %>
字条串"${str}"的长度是${myTag:getLen(str)}
字条串"${str}"截取前5个字符:${myTag:substr(str,0,5)}
5除以3取整数是:${myTag:chufa(5,3) }