自定义jsp标签
来源:互联网 发布:淘宝如何看价格趋势图 编辑:程序博客网 时间:2024/05/20 15:41
构成一个自己定义的标签需要3个步骤:
首先、一个标签的处理类
这个处理类需要继承SimpleTagSupport这个类,重写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结尾的文件
例子:
<?xml version="1.0" encoding="UTF-8" ?><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/j2eehttp://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"version="2.0"><tlib-version>1.0</tlib-version><short-name>csajsp-taglib</short-name>13<tag><description>Outputs 50-digit primes</description><name>simplePrime</name><tag-class>coreservlets.tags.SimplePrimeTag</tag-class><body-content>empty</body-content></tag>...</taglib>
最后、在jsp页面中使用
例子:
<BODY><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/></UL></BODY></HTML>
下面写一个带有自己属性的标签
首先、标签处理类
注意这个类继承了上面写的那个处理类SimplePrimeTag
package coreservlets.tags;public class PrimeTag extends SimplePrimeTag {public void setLength(String length) {try {this.length = Integer.parseInt(length);} catch(NumberFormatException nfe) {this.length = 50;}}}
其次、TLD表述文件
<taglib ...>...<tag><description>Outputs an N-digit prime</description><name>prime</name><tag-class>coreservlets.tags.PrimeTag</tag-class><body-content>empty</body-content><attribute><name>length</name><required>false</required></attribute></tag>...</taglib>
最后、在jsp页面中使用
...<BODY><H1>Some N-Digit Primes</H1><%@ taglib uri="/WEB-INF/tlds/csajsp-taglib.tld"prefix="csajsp" %><UL><LI>20-digit: <csajsp:prime length="20"/><LI>40-digit: <csajsp:prime length="40"/><LI>80-digit: <csajsp:prime length="80"/><LI>Default (50-digit): <csajsp:prime/></UL></BODY></HTML>
一个带有标签体的jsp标签
处理类中需要有
public void doTag() throws ... {JspWriter out = getJspContext().getOut();out.print("...");getJspBody().invoke(null);//这句话是打印标签体里面的内容out.print("...");}
TLD文件:
body-content里的不再是empty,注意比如标签体里是一个el表达式:如果不做修改原封不动的打印就用scriptless,如果想打印表达式的值需要用到tagdependent
<tag><name>…</name><tag-class>…</tag-class><body-content>scriptless</body-content></tag>
- JSP----自定义标签---简单标签
- jsp自定义标签-----嵌套标签
- JSP标签编程----自定义标签
- JSP 自定义标签:简单标签
- JSP标签-JSTL-自定义标签
- JSP自定义标签-Select标签
- jsp 自定义标签---标签文件
- JSP自定义标签
- JSP自定义标签学习心得
- JSP自定义标签试验
- JSP 自定义标签库
- 自定义JSP标签
- 创建JSP自定义标签
- 关于自定义标签 jsp
- 关于自定义标签 jsp
- jsp 自定义分页标签
- JSP自定义标签简介
- JSP自定义标签例子
- ORACLE 恢复误删表的数据
- pdf文件的在线浏览
- 关于ThreadLocal
- memory 编程接口
- Linux学习笔记(十三)
- 自定义jsp标签
- ftp服务器搭建
- Spring中配置文件application.xml中各配置的含义
- DoJo验证表单方法
- Flex热点图客户端渲染
- 10.23的实验要求
- 局域网查看工具
- mysql错误is marked as crashed and should be repaired
- 一对多单向关联