当前位置:首页 > JavaServer Page

JSP表达式语言

canca18年前 (2008-09-10)JavaServer Page433

① 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方法的描述  -->
  getLen
  com.cw.common.UFunction
  
   int getLen(java.lang.String)
  

  ${len:getLen(str)}
 

 
  substring
  substr
  com.cw.common.UFunction
  
   java.lang.String substr(java.lang.String,int,int)
  

 

 
  chufa
  chufa
  com.cw.common.UFunction
  int chufa(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) }  
    
    
 

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/370.html

标签: JavaServer Page
分享给朋友:

“JSP表达式语言” 的相关文章

JBoss,Tomcat 中文URL支持方法

JBOSS 找到jboss4的deploy\jbossweb-tomcat50.sar\server.xml,编辑该文件,在下面的XML节点中增加红色的字<Connector port="8080" address="${jboss.bind.address}"  &nbs…

在web.xml不认<taglib>解决办法

在web.xml不认<taglib>解决办法: 如果是头是这样的<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application&n…

<html:select>设置默认值

在ActionFrom的reset方法里赋初值就可以,这样不管是调用的action或jsp都会先调用reset方法。…

struts,ajax乱码解决方案

乱码问题好像跟我们中国程序员特别有缘,一直困扰着我们,从开始的JSP乱码问题,STRUTS乱码问题,到现在的AJAX乱码问题,无一不是搞得许多程序员焦头烂额的,整天骂XXX产品对中文支持不了,UTF-8无法使用中文啊什么的,其实…

JSP动态include与静态include的区别

动态INCLUDE   jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态INCLUDE   用include伪码实现,定不会检…

FCKeditor的秘密

       哈哈。。由于项目的需要,这几天一直在搞FCKeditor。其实,FCKeditor配置很简单。但不知道怎么样。在我的项目里FCKeditor总不能在FireFox里显示。开始我还以为是我的配置有问题。但我从头到尾检查了配置…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。