目的:为了使jsp文件中不出现java代码。
流程
- 标签处理类
- 标签描述文件.tld,放在WEB-INF下
- jsp文件
标签处理类:可以理解为被jsp文件调用,把输出显示在jsp文件里
- extends SimpleTagSupport
- JspWriter out = getJspContext().getOut();输出到jsp文件
- void doTag()方法
public class SimplePrimeTag extends SimpleTagSupport {
protected int length = 50;
public void doTag() throws JspException, IOException {
JspWriter out = getJspContext().getOut();
BigInteger prime = Primes.nextPrime(Primes.random(length));
out.print(prime);
}
}
标签描述文件.tld
包围
相关元素:
1. description
2. name:可以理解为标签处理类的别名,用于被jsp文件调用
3. tag-class:标签处理类的完全限定名
4. body-content
5. required:指定是否必须始终提供属性,是由<attribute>
包围的
<tag>
<description>Outputs 50-digit primes</description>
<name>simplePrime</name>
<tag-class>coreservlets.tags.SimplePrimeTag</tag-class>
<body-content>empty</body-content>
</tag>
jsp文件
- taglib
- uri
- prefix
<H1>Some 50-Digit Primes</H1>
<%@ taglib uri="/WEB-INF/tlds/csajsp-taglib.tld"
prefix="csajsp" %>
<UL>
<LI><csajsp:simplePrime />
<LI><csajsp:simplePrime />
<LI><csajsp:simplePrime />
<LI><csajsp:simplePrime></csajsp:simplePrime>
</UL>
此处的simplePrime是前面.tld文件里定义的标签处理类的<name>simplePrime</name>
具体执行过程
- jsp文件通过名simplePrime在.tld文件里找到SimplePrimeTag 这个类
- 然后调用doTag方法将输出打印在jsp页面