java 自定义标签继承_JSP继承TagSupport如何开发带属性的自定义标签

JSP继承TagSupport如何开发带属性的自定义标签

Taglib的无属性自定义标签不能满足我们,如果可以在标签从加入我们需要的属性那么这样的话会更发方便了,可以根据我需要的什么参数直接传到指定的类展现我需要的内容。Taglib开发自定义属性标签步骤如下:

1. 导入java包

import javax.servlet.jsp.*;

import javax.servlet.jsp.tagext.*;

2. 创建实现了TagSupport接口的实现类(或者是继承了SimpleTagSupport类的子类)

public class FieldTag extends TagSupport {

private static final long serialVersionUID = -3282476920723218742L;

private String field;

private Integer count;

public final String getField() {

return field;

}

public final void setField(String field) {

this.field = field;

}

public final Integer getCount() {

return count;

}

public final void setCount(Integer count) {

this.count = count;

}

@Override

public int doEndTag() throws JspException {

try {

JspWriter out = pageContext.getOut();

out.print(field);

out.print(count);

} catch(IOException e) {

e.printStackTrace();

}

return super.doEndTag();

}

}

在类中为相应的属性字段添加setter方法,注意字段名称一定要一致。

3. tld文件中进行相关约束项的声明

1.0

mytaglib

field

org.lxh.taglib.FieldTag

empty

field

true

true

count

true

true

不同于不带属性的简单标签的声明方式,这里多了一个attribute子标签,内有name,required(此属性是否必须存在),rtexprvalue(是否可以使用表达式,为了与EL表达式配合,一般会为true)。

4. jsp页面中进行taglib命令的声明,使用标签的自定义属性

总结

1. 每个定义好的属性必须写getset方法,如果不写getset的话会报错说当前taglib没有setter方法

2. 每个定义的属性名称必须跟标签中的标签名称一致.

3. 在标签中参数如下表示是否接受jsp语法或者el语言或其他动态语言,默认false.

4. 每个标签属性是根据用户自定义的属性,也就是说定义一个值的时候为String的他就不能输入int等其他类型,否则就会报错.

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值