JSP 2.x用SimpleTag开发自定义标签的方法

本文介绍如何使用JSP 2.x创建自定义标签,并通过一个具体的示例来展示实现过程。该示例演示了如何创建一个用于计算数值的标签,包括标签处理类的编写、tld文件配置及在jsp页面中的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前我们编写自定义标签用的是Jsp1.x标签的做法


自定义标签:


实现Tag接口,或者继承TagSupport类


自定义标签体:
实现BodyTag接口,或者继承BodyTagSupport类
我们重写的是doStartTag()或者doEndTag()方法






现在我们用Jsp2.x标签:
标签处理类(标签体)
实现SimpleTag接口,或者继承SimpleTagSupport接口
这次我们重写的是doTag方法
在Jsp2.x标签中:
JspWriter out = this.getJspContext().getOut;获取输出对象
这里面没有pageContext对象


下面举一个例子来进一步说明吧(把两个数相加,再加上标签体内容)
Add.java类:
package javastudy;


import java.io.IOException;
import java.io.StringWriter;


import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;


public class Add extends SimpleTagSupport {


String num1;
String num2;
public void setNum1(String num1) {
this.num1 = num1;
}
public void setNum2(String num2) {
this.num2 = num2;
}
@Override
public void doTag() throws JspException, IOException {
   JspWriter out = this.getJspContext().getOut();
   int num = Integer.parseInt(num1)+Integer.parseInt(num2);
   JspFragment frag = this.getJspBody();///得到标签体
   StringWriter sw = new StringWriter();//新建一个字符串流
   frag.invoke(sw);///将标签体的内容输出到这个字符串的流中
   num = num + Integer.parseInt(sw.toString());///将字符流


的内容转换成字符串,也就是从字符流中得到里面的字符串
   out.println(num);
super.doTag();
}
 
   
       

}


tld文件:
<tag>
<name>d</name>
<tag-class>javastudy.Add</tag-class>
<body-content>tagdependent</body-content>
<attribute>
<name>num1</name>
<required>true</required>
</attribute>
<attribute>
<name>num2</name>
<required>true</required>
</attribute>
</tag>


jsp文件中:
<my:d num2="500" num1="200">300</my:d>
最后输出1000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弗兰随风小欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值