现在制作自定义标签有以下几种方式,一个是继承TagSupport或者TagBodySupport
JSP2.0中新增了继承SimpleTag,还有一种方式,就是使用TagFile,这也是JSP2.0中特有的制作自定义标签的方式
这是Tag File
功能很简单,就是动态参数相加,如果大于1000就执行大于1000的代码(采用红色显示),反之则使用红色显示
<%
...
@ tag pageEncoding="GB2312"
%>
<% ... @ tag dynamic-attributes="numColumn" %>
<% ... @ attribute name="great" fragment="true" %>
<% ... @ attribute name="less" fragment="true" %>
<% ... @ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<% ... @ variable name-given="sum" variable-class="java.lang.Object" %>
< c:if test ="${not empty numColumn}" >
< c:forEach items ="${numColumn}" var ="num" >
< c:set var ="sum" value ="${num.value + sum}" />
</ c:forEach >
< c:if test ="${sum >= 1000}" >
< jsp:invoke fragment ="great" />
</ c:if >
< c:if test ="${sum < 1000}" >
< jsp:invoke fragment ="less" />
</ c:if >
</ c:if >
<% ... @ tag dynamic-attributes="numColumn" %>
<% ... @ attribute name="great" fragment="true" %>
<% ... @ attribute name="less" fragment="true" %>
<% ... @ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<% ... @ variable name-given="sum" variable-class="java.lang.Object" %>
< c:if test ="${not empty numColumn}" >
< c:forEach items ="${numColumn}" var ="num" >
< c:set var ="sum" value ="${num.value + sum}" />
</ c:forEach >
< c:if test ="${sum >= 1000}" >
< jsp:invoke fragment ="great" />
</ c:if >
< c:if test ="${sum < 1000}" >
< jsp:invoke fragment ="less" />
</ c:if >
</ c:if >
JSP
<%
...
@ page contentType="text/html;charset=GB2312"
%>
<% ... @ taglib prefix="JSPBook" tagdir="/WEB-INF/tags/" %>
<% ... @ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
< html >
< head >
< title > CH16 - DynAdd.jsp </ title >
</ head >
< body >
< h2 > Tag File 范例 </ h2 >
< JSPBook:add num1 ="100" num2 ="2002" num3 ="303" >
< jsp:attribute name ="great" >
< font color ="red" > SUM:${sum} ... </ red >
</ jsp:attribute >
< jsp:attribute name ="less" >
< font color ="blue" > SUM:${sum} ... </ red >
</ jsp:attribute >
</ JSPBook:add >
</ body >
</ html >
<% ... @ taglib prefix="JSPBook" tagdir="/WEB-INF/tags/" %>
<% ... @ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
< html >
< head >
< title > CH16 - DynAdd.jsp </ title >
</ head >
< body >
< h2 > Tag File 范例 </ h2 >
< JSPBook:add num1 ="100" num2 ="2002" num3 ="303" >
< jsp:attribute name ="great" >
< font color ="red" > SUM:${sum} ... </ red >
</ jsp:attribute >
< jsp:attribute name ="less" >
< font color ="blue" > SUM:${sum} ... </ red >
</ jsp:attribute >
</ JSPBook:add >
</ body >
</ html >