自定義標籤開發之函數標籤開發

開發函數標籤時,標籤的實現類不必去繼承某一個類.

第一步,標籤的實現

  1. package com.dadao.tag;
  2. public class FunctinTag {
  3.     public static String sayHello(String name){//標籤的方法必須是static的
  4.         return "你好!"+name;
  5.     }
  6. }

第二步,修改TLD文件,如下:

  1. <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
  2.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
  4.     version="2.0">
  5.    <description>oper tag  library</description>
  6.    <display-name>display text</display-name>
  7.    <tlib-version>1.0</tlib-version>
  8.    <short-name>cy</short-name>
  9.    <uri>http://mytaglib/chenyang</uri>
  10.    <tag>
  11.         <description>chenyang's custom display message tag</description>
  12.         <name>sayHello</name>
  13.         <tag-class>com.dadao.tag.HelloWorldTag</tag-class>
  14.         <body-content>empty</body-content>
  15.    </tag>
  16.    <tag>
  17.         <description></description>
  18.         <name>sqt</name>
  19.         <tag-class>com.dadao.tag.OutParamTag</tag-class>
  20.         <body-content>scriptless</body-content>
  21.         <variable><!-- 輸出參數 -->
  22.             <name-given>result</name-given>
  23.         </variable>
  24.         <attribute><!-- 定義輸入參數 -->
  25.             <name>num</name>
  26.             <required>true</required>  
  27.             <rtexprvalue>true</rtexprvalue><!-- 允許腳本表達式作爲其值 -->
  28.         </attribute>
  29.    </tag>
  30.    <function>
  31.         <name>say</name> <!-- 函數名 -->
  32.         <function-class>com.dadao.tag.FunctinTag</function-class> <!-- 標籤的實現類 -->
  33.         <function-signature>java.lang.String sayHello(java.lang.String)</function-signature> <!-- 標籤的輸出和輸入參數-->
  34.    </function>
  35. </taglib>   

第三步,配置web.xml

  1.   <jsp-config>
  2.     <taglib>
  3.         <taglib-uri>/WEB-INF/taglib/cy.tld</taglib-uri>
  4.         <taglib-location>http://mytaglib/chenyang</taglib-location>
  5.     </taglib>
  6.   </jsp-config>

 

第四步,撰寫JSP測試,代碼如下:

  1. <%@ page language="java"  pageEncoding="UTF-8"%>
  2. <%@ taglib prefix="cy" uri="http://mytaglib/chenyang" %>
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  4. <html>
  5.   <head>
  6.     <title>My JSP 'index.jsp' starting page</title>
  7.   </head>
  8.   <body> 
  9.     <cy:sayHello/>
  10.     <hr>
  11.     <cy:sqt num="25">
  12.         ${result}
  13.     </cy:sqt>
  14.     <hr>
  15.     ${cy:say("陳陽")}
  16.   </body>
  17. </html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章