如何实现自定义标签

2025-04-22 04:28:27

1、自定义一个用表格显示用户信息的简单标签简单标签的开发我们只要实现Tag接口即可,为了简单起见可以直接继承实现了此接口的TagSupport类

2、创建自定义标签类publicclassUserInfoTagextendsTagSupport {privateUserInfo user; @OverridepublicintdoStartTag()throwsJspException {try{ JspWriter out =this.pageContext.getOut();if(user ==null) { out.println("No UserInfo Found...");returnSKIP_BODY; } out.println("<table width='500px' border='1' align='center'>"); out.println("<tr>"); out.println("<td width='20%'>Username:</td>"); out.println("<td>" + user.getUserName() + "</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td>Age:</td>"); out.println("<td>" + user.getAge() + "</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td>Email:</td>"); out.println("<td>" + user.getEmail() + "</td>"); out.println("</tr>"); out.println("</table>"); }catch(Exception e) {thrownewJspException(e.getMessage()); }returnSKIP_BODY; } @OverridepublicintdoEndTag()throwsJspException {returnEVAL_PAGE; } @Overridepublicvoidrelease() {super.release();this.user =null; } //getter and setterspublicUserInfo getUser() {returnuser; }publicvoidsetUser(UserInfo user) {this.user = user; }}

3、在Web-Inf创建标签库描述文件.tdl(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>cc</short-name><uri>/mytaglib</uri><tag> <name>showUserInfo</name> <tag-class>com.mytags.UserInfoTag</tag-class> <body-content>empty</body-content> <attribute> <name>user</name> <required>false</required> <rtexprvalue>true</rtexprvalue> </attribute></tag></taglib>

4、配置web.xml<jsp-config> <taglib> <taglib-uri>/mytaglib</taglib-uri> <taglib-location>/WEB-INF/mytaglib.tld</taglib-location> </taglib> </jsp-config>

5、在需要使用此标签的jsp页面头部引入<%@ taglib uri="/mytaglib" prefix="cc"%>

6、使用(参照上面的使用步骤)此致,一个简单的JSP标签开发完成

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢