web.xml
/----------------------- web.xml start----------------------------/
<jsp-config>
<taglib>
<taglib-uri>randomjstl</taglib-uri>
<taglib-location>/WEB-INF/random.tld</taglib-location>
</taglib>
</jsp-config>
<taglib>
<taglib-uri>randomjstl</taglib-uri>
<taglib-location>/WEB-INF/random.tld</taglib-location>
</taglib>
</jsp-config>
/----------------------- web.xml end----------------------------/
random.tld
/----------------------- random.tld start----------------------------/
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
<description><![CDATA["我的第一个tld"]]></description>
<display-name>"random Tags"</display-name>
<tlib-version>1.0</tlib-version>
<short-name>random</short-name>
<uri>randomjstl</uri>
<tag>
<description><![CDATA[产生一个指定范围的随机数]]></description>
<name>random</name>
<tag-class>package.RandomTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description><![CDATA[产生的随机数的最小值]]></description>
<name>min</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description><![CDATA[产生的随机数的最大值]]></description>
<name>max</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<dynamic-attributes>false</dynamic-attributes>
</tag>
</taglib>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
<description><![CDATA["我的第一个tld"]]></description>
<display-name>"random Tags"</display-name>
<tlib-version>1.0</tlib-version>
<short-name>random</short-name>
<uri>randomjstl</uri>
<tag>
<description><![CDATA[产生一个指定范围的随机数]]></description>
<name>random</name>
<tag-class>package.RandomTag</tag-class>
<body-content>JSP</body-content>
<attribute>
<description><![CDATA[产生的随机数的最小值]]></description>
<name>min</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<description><![CDATA[产生的随机数的最大值]]></description>
<name>max</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<dynamic-attributes>false</dynamic-attributes>
</tag>
</taglib>
/----------------------- random.tld end---------------------------/
RandomTag.java
/----------------------- RandomTag.java start----------------------------/
import java.io.IOException;
import java.util.Random;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class RandomTag extends TagSupport {
// 封装random标签的两个属性的JavaBean属性
/**
*
*/
private static final long serialVersionUID = 5323260964085021588L;
private int min = 0;
private int max = Integer.MAX_VALUE;
// min属性的setter方法
public void setMin(int min)
{
this.min = min;
}
// max属性的setter方法
public void setMax(int max)
{
this.max = max;
}
// 覆盖TagSupport类的doStartTag方法
// 当遇到标签(也就是<ct:random>)的开始标记时调用该方法
@Override
public int doStartTag() throws JspException
{
try
{
Random random = new Random();
// 生成一个在min和max之间的随机数
int result = min + random.nextInt(max - min);
// 将生成的随机数输出到客户端
pageContext.getOut().write(String.valueOf(result));
}
catch (IOException e)
{
}
// TagSupport类的doStartTag方法默认返回SKIP_BODY,表示忽略自定义标签体
return super.doStartTag();
}
}
import java.util.Random;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class RandomTag extends TagSupport {
// 封装random标签的两个属性的JavaBean属性
/**
*
*/
private static final long serialVersionUID = 5323260964085021588L;
private int min = 0;
private int max = Integer.MAX_VALUE;
// min属性的setter方法
public void setMin(int min)
{
this.min = min;
}
// max属性的setter方法
public void setMax(int max)
{
this.max = max;
}
// 覆盖TagSupport类的doStartTag方法
// 当遇到标签(也就是<ct:random>)的开始标记时调用该方法
@Override
public int doStartTag() throws JspException
{
try
{
Random random = new Random();
// 生成一个在min和max之间的随机数
int result = min + random.nextInt(max - min);
// 将生成的随机数输出到客户端
pageContext.getOut().write(String.valueOf(result));
}
catch (IOException e)
{
}
// TagSupport类的doStartTag方法默认返回SKIP_BODY,表示忽略自定义标签体
return super.doStartTag();
}
}
/----------------------- RandomTag.java end----------------------------/
random.jsp
/----------------------- random.jsp start----------------------------/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib uri="randomjstl" prefix="l"%>
<l:random min="0" max="100"/>
/----------------------- random.jsp end----------------------------/
jsp输出结果为0~99的随机数!