JSP自定义标签

caitianxiwo 2012-07-06 03:12:23
简单标签,的开发我们只要实现Tag接口即可为了简单起见可以直接继承实现了此接口的TagSupport类
setPageContext() 将所在jsp页面的pageContext注入进来,目的是为了在后面的方法中可以访问到jsp页面对象的pageContext属性

setParent() 设置此标签的父标签

setAttribute() 将标签中的属性注入到此class的属性,不需要自己实现但要提供属性的get与set方法

doStartTag() 在开始标签属性设置后调用,如果返回SKIP_BODY则忽略标签之中的内容,如果返回EVAL_BODY_INCLUDE则将标签体的内容进行输出

doEndTag() 在结束标签之前调用,返回SKIP_PAGE跳过整个jsp页面后面的输出,返回EVAL_PAGE执行页面余下部分

release() 生命周期结束时调用

1 创建自定义标签类
public class showUserTag extends TagSupport{
private String userID;

@Override
public int doStartTag() throws JspException {
......
return EVAL_BODY_INCLUDE;
}

public String getUserID() {
return userID;
}

public void setUserID(String userID) {
this.userID= userID;
}

}

2 在WEB-INF创建标签库描述文件.tld(Tag Library Description)
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" 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/j2ee web-jsptaglibrary_2_0.xsd">

<!--版本号-->
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>userInfo</short-name>
<uri>/someTaglib</uri>
<tag>
<!—指定标签名 -->
<name>showUser</name>
<!—指定标签类文件的全路径 -->
<tag-class>com.mytags.UserTag</tag-class>
<!--如果不需要标签体则设置empty,反之设定jsp -->
<body-content>jsp</body-content>
<!—设定属性(如果有的话) -->
<attribute>
<!—指定标签名 -->
<name>user</name>
<!—是否是必须,如果非必须没设置则为空 -->
<required>false</required>
<!—是否可在属性中使用表达式 -->
<rtexprvalue>true</rtexprvalue>
</attribute>
......
</tag>

</taglib>

3 配置web.xml
<jsp-config>
<taglib>
<taglib-uri>/someTaglib</taglib-uri>
<taglib-location>/WEB-INF/someTaglib.tld</taglib-location>
</taglib>
</jsp-config>
4 在需要使用此标签的jsp页面头部引入
<%@ taglib uri="/someTaglib" prefix="somePrrfix"%>
...全文
78 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuxuan8701 2012-07-06
  • 打赏
  • 举报
回复
lz的日志么?

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧