開發函數標籤時,標籤的實現類不必去繼承某一個類.
第一步,標籤的實現
- package com.dadao.tag;
- public class FunctinTag {
- public static String sayHello(String name){//標籤的方法必須是static的
- return "你好!"+name;
- }
- }
第二步,修改TLD文件,如下:
- <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>oper tag library</description>
- <display-name>display text</display-name>
- <tlib-version>1.0</tlib-version>
- <short-name>cy</short-name>
- <uri>http://mytaglib/chenyang</uri>
- <tag>
- <description>chenyang's custom display message tag</description>
- <name>sayHello</name>
- <tag-class>com.dadao.tag.HelloWorldTag</tag-class>
- <body-content>empty</body-content>
- </tag>
- <tag>
- <description></description>
- <name>sqt</name>
- <tag-class>com.dadao.tag.OutParamTag</tag-class>
- <body-content>scriptless</body-content>
- <variable><!-- 輸出參數 -->
- <name-given>result</name-given>
- </variable>
- <attribute><!-- 定義輸入參數 -->
- <name>num</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue><!-- 允許腳本表達式作爲其值 -->
- </attribute>
- </tag>
- <function>
- <name>say</name> <!-- 函數名 -->
- <function-class>com.dadao.tag.FunctinTag</function-class> <!-- 標籤的實現類 -->
- <function-signature>java.lang.String sayHello(java.lang.String)</function-signature> <!-- 標籤的輸出和輸入參數-->
- </function>
- </taglib>
第三步,配置web.xml
- <jsp-config>
- <taglib>
- <taglib-uri>/WEB-INF/taglib/cy.tld</taglib-uri>
- <taglib-location>http://mytaglib/chenyang</taglib-location>
- </taglib>
- </jsp-config>
第四步,撰寫JSP測試,代碼如下:
- <%@ page language="java" pageEncoding="UTF-8"%>
- <%@ taglib prefix="cy" uri="http://mytaglib/chenyang" %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>My JSP 'index.jsp' starting page</title>
- </head>
- <body>
- <cy:sayHello/>
- <hr>
- <cy:sqt num="25">
- ${result}
- </cy:sqt>
- <hr>
- ${cy:say("陳陽")}
- </body>
- </html>