开发函数标签时,标签的实现类不必去继承某一个类.
第一步,标签的实现
- 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>