EL自定義函數的方法

[TOC]

EL函數能完成對數據的統一操做,其開發步驟以下:java

  • 開發函數處理類,處理類就是普通的類;每一個函數對應類中的一個靜態方法;
  • 創建TLD文件,定義表達式函數
  • 在WEB.XML文件中配置(可省略)
  • 在JSP頁面內導入而且使用

1、定義一個普通類,提供實現功能的靜態方法

EL函數只能調用靜態方法web

public class MyFunctions {
    /**
     * 得到當前日期時間
     * @return
     */
    public static String getNowDateTime(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設置日期格式
        return sdf.format(new Date());
    }
}

2、EL函數的配置

在WEB-INF目錄下創建一個擴展名爲tld的xml文件markdown

<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://imentors.net.cn/jsp/function</uri>

  <function>
    <description>
              得到當前日期時間
    </description>
    <!--這裏name能夠隨便寫-->  
    <name>getNowDateTime</name>
  <!--這裏最爲重要,指定類所在位置,以及類方法的一些重要信息-->  
    <function-class>cn.net.imentors.javaweb.el.MyFunctions</function-class>
    <!--函數的返回值和參數必須是全類名-->
    <function-signature>java.lang.String getNowDateTime()</function-signature>
  </function>
  </taglib>

3、在WEB中配置

若是tld文件是在WEB-INF目錄下,就不須要這一步了app

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <jsp-config>
        <taglib>
            <!-- 配置標籤的引用地址 JSP頁面中引用時使用-->
            <taglib-uri>/myfn</taglib-uri>
            <!-- 配置標籤的TLD文件地址 -->
            <taglib-location>/WEB-INF/myfn.tld</taglib-location>
        </taglib>
    </jsp-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

4、在JPS中使用

經過taglib指令引入外部的函數庫jsp

<%@ taglib uri="http://imentors.net.cn/jsp/function" prefix="myfn"%>
${myfn:getNowDateTime() }
相關文章
相關標籤/搜索