1. 程式人生 > 程式設計 >Javaweb EL自定義函式開發及程式碼例項

Javaweb EL自定義函式開發及程式碼例項

1.什麼是EL自定義函式

EL自定義函式是在EL表示式中呼叫的某個java類的靜態方法,這個靜態方法需在web應用程式中進行配置才可以被EL表示式呼叫。

EL自定義函式可以擴充套件EL表示式的功能,讓EL表示式完成普通java程式程式碼所能完成的功能。

2.EL自定義函式開發步驟

編寫EL自定義函式對映的java類中的靜態方法:這個Java類必須帶有public修飾符,方法必須是這個類的帶有public修飾符的靜態方法;

編寫標籤庫描述檔案(tld檔案),在tld檔案中描述自定義函式;

在jsp頁面中匯入和使用自定義函式。

3.示例程式碼

實現的功能是連線兩個字串。

編寫靜態方法,有public修飾符,且為靜態方法,elFunction.java

package com.javaweb.tag;
public class elFunction {
  public static String concat(String str1,String str2){
    return str1+str2;
  }
}

編寫標籤庫描述檔案,即tld檔案,相關的自定義函式的描述在function標籤中,elFunction.tld

<?xml version="1.0" encoding="UTF-8"?>
 
<taglib 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-jsptaglibrary_2_1.xsd"
  version="2.1">
   
 <description>MyTag 1.1 core library</description>
 <display-name>MyTag core</display-name>
 <tlib-version>1.1</tlib-version>
 <short-name>c</short-name>
 <uri>http://java.www.com/jsp/jstl/core/elFunction</uri>
 <function>
  <name>concat</name>
  <function-class>com.javaweb.tag.elFunction</function-class>
  <function-signature>java.lang.String concat(java.lang.String,java.lang.String)</function-signature>
 </function>
</taglib>

jsp檔案中匯入和使用自定義函式。

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.www.com/jsp/jstl/core/elFunction" prefix="koala"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <base href="<%=basePath%>" rel="external nofollow" >
   
  <title>My JSP 'elFunction.jsp' starting page</title>
   
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">  
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
  <!--
  <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" >
  -->
 
 </head>
  
 <body>
  ${koala:concat(param.name1,param.name2)}
 </body>
</html>

執行後輸出結果為:

Javaweb EL自定義函式開發及程式碼例項

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。