使用自定義tld標籤簡化jsp的繁瑣操作

Gin.p發表於2015-10-23

  最近做一個樹形結構的展示,請求目標頁面後,後臺只返回簡單的List,雖然有想過在jsp頁面內做一些操作簡化,但是太繁瑣了,其他的標籤又不能滿足需求,所以只能自己做一個。使用tld標籤可以簡化jsp程式碼,以後也可以重用程式碼,所以出於這兩個優點,用自定義的tld標籤是一個不錯的選擇。這裡只做一個簡單例子,將字串全部變成大寫。

1、定義tld的類 

定義的方法應該是static方法。

public class TestFunction {
    
    public static String stringUpperCase(String target){
        return target.toUpperCase();
    }
} 

2、新增tld標籤

<?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>fu</short-name>  
  <uri>/WEB-INF/tags/function.tld</uri> 
  
  <function>  
    <name>stringUpperCase</name>  
    <function-class>test.tld.TestFunction</function-class>  
    <function-signature>java.lang.String stringUpperCase(java.lang.String)</function-signature>  
  </function>  
</taglib>  

<short-name>表示宣告標籤的呼叫名稱。   

<uri>表示tld標籤的位置,tld標籤應該定義在WEB-INF中。這裡我放在WEB-INF的tags資料夾中。

<function-class>tld標籤執行的方法的類。

<function-signature>宣告瞭方法返回的型別,方法名,方法的引數。方法引數可以是List,int等。

 

3、web.xml中宣告tld標籤

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name></display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <jsp-config>  
    <taglib>  
        <taglib-uri>/tags/function</taglib-uri>  
        <taglib-location>/WEB-INF/tags/function.tld</taglib-location>  
    </taglib>  
  </jsp-config> 
</web-app>

4、使用自定義tld標籤

<%@ taglib prefix="fn" uri="/tags/function" %>

${fn:stringUpperCase(target) }

宣告tld標籤後,才開始使用。target是後臺儲存在request或session的字串。

 

5、總結

好好使用tld標籤能在關鍵時候使你的頁面更加優雅,在多次使用某段jsp的程式碼,可以封裝起來,使頁面更加簡潔,下次再次使用的時候更加方便。

 

    

相關文章