Java - 自定义标签

自定义标签在项目中非常有用,使用起来也非常简单,下面就看看创建及使用过程吧。

[color=red][b]一、创建一个类并继承BodyTagSupport[/b][/color]

package com.main.movie.tag;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;

/**
* 分页标签
* @author main
*
*/
@SuppressWarnings("serial")
public class UIPageTag extends BodyTagSupport {
private int page;

public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}

public int doStartTag() throws JspException {
StringBuffer html = new StringBuffer();
html.append("<a href='#' onclick='Tabs.changePage(\"admin/admin_adminManager?page=" + (page+1) + "\")'>下一页</a>");
try {
System.out.println(html.toString());
pageContext.getOut().print(html.toString());
} catch (IOException e) {
e.printStackTrace();
}
return EVAL_PAGE;
}

}


[color=red][b]二、在WEB-INF文件夹下创建一个tlds文件夹并创建tld文件(后缀是.tld,格式其实是xml的)[/b][/color]

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>movie-admin</short-name>
<tag>
<name>uiPage</name>
<tag-class>com.main.movie.tag.UIPageTag</tag-class>
<attribute>
<name>page</name>
<required>true</required>
</attribute>
</tag>
</taglib>


[color=red][b]三、配置web.xml[/b][/color]

<jsp-config>
<taglib>
<taglib-uri>/movie-admin</taglib-uri>
<taglib-location>/WEB-INF/tlds/movie-admin.tld</taglib-location>
</taglib>
</jsp-config>


[color=red][b]四、在JSP界面中引入标签[/b][/color]

<%@ taglib uri="/WEB-INF/tlds/movie-admin.tld" prefix="family" %>


[color=red][b]五、让标签支持EL表达式[/b][/color]
修改需要支持EL表达式的属性的Setter方法如:

public void setValue(Object value)throws JspException {
  this.value = ExpressionEvaluatorManager.evaluate(
            "value", value.toString(), Object.class, this, pageContext); 
 }

属性说明:
第一个表示tag的名字,在取el表达式出错时使用。一般和属性名字相同。
第二个要求字符串,通常简单调用输入对象的toString方法。
第三个是类,通常用Object.class。
第四个用this即可,
第五个是pageContext变量。

[color=red][b]注意:
1、tld文件中该标签属性的rtexprvalue得设置为true。
2、顺便检查一下JSTL所需的包在不在。[/b][/color]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值