JSP 2.0中函數式標籤庫小結

來源:互聯網
上載者:User

 一直十分喜歡jsp 2.0的,其中自覺對jsp 2.0的標籤庫認識不夠,故學習之,在學習中,發現在標籤庫中,有一類可以被稱為
函數式標籤庫的標籤,其功能主要是通過EL(運算式語言)對靜態函數方法的調用,這可以簡化一些標籤的開發。

    想象在一個投票系統中,要展示投票的結果。假設有一個欄位要展示的是投票類型,比如展示給使用者的是:單選,多選(當然,一般沒
投票會在顯示結果時這麼傻展示出來的),而資料庫中一般儲存的是KEY,展示給使用者的一般是value,則在頁面展示時需要進行轉換給使用者看。
則我們先構造一個類,比如
package liao.vote;
public class votefunction
{

    public static String changevotetype(int value)
{
//intvalue:這裡比如是來自資料庫的KEY
//在這裡做轉換的工作,這裡省略了。。。。

}
}

然後設計自訂的標籤庫,比如vote.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">
   
  <description>vote</description>
  <display-name>vote</display-name>
  <tlib-version>1.1</tlib-version>
  <short-name>vote</short-name>
  <uri>http://liao</uri>

  <function>
   <name>changevotetype</name>
   <function-class>liao.vote.VoteFunction</function-class>
   <function-signature>java.lang.String votetype( java.lang.String )</function-signature>
  </function>
  
  ......下面的形式雷同,可以有很多個<function> 
   
</taglib>
其中,<name>指名了函數的名稱,這裡是changevotetype,要和之前定義的名稱一致,<function-class>指明了類的全名,要包括包名,而
<function-signature>則實際上是對函數的一個簡單描述

當然,最後我們還要在web.xml裡對其進行定義
<jsp-config>
  <taglib>
   <taglib-uri>http://liao/vote</taglib-uri>
   <taglib-location>/WEB-INF/taglib/vote.tld</taglib-location>
  </taglib>
 </jsp-config>
注意把vote.tld放在WEB-INF/taglib檔案夾下

在具體使用時,比如在JSP頁面裡
<%@ taglib prefix="vote" uri="http://liao/vote"%>
注意這裡的uri要和web.xml裡設定的<taglib-uri>相同

在實際調用時,如下方法調用
${vote:changevotetype{vote.votetype}}
其中vote.votetype是資料庫裡調用出來的key的值了,這裡不詳細展開。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.