JSP自定义标签开发
JSP自定义标签的定义步骤:
1、创建标记处理器
2、创建TLD文件
3、编辑web.xml
4、在JSP页面中使用JSP自定义标签
一般情况下开发jsp自定义标签需要引用以下两个包
import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*;
自定义一个用表格显示用户信息的简单标签:
效果图:
在jsp页面使用此自定义标签:
假设我们有一个UserInfo的javabean,那么在JSP页面使用此标签只需调用此标签即可
<!-- 创建需要展现UserInfo的实例(用于测试数据) -->
<% UserInfo user = new UserInfo(); user.setUserName("Xuwei"); user.setAge(33); user.setEmail("[email protected]"); pageContext.setAttribute("userinfo", user); %> <!-- 给标签设置user属性绑定要展现的UserInfo对象 --> <cc:showUserInfo user="${pageScope.userinfo }" />
开发步骤:
简单标签的开发我们只要实现Tag接口即可,为了简单起见可以直接继承实现了此接口的TagSupport类
1 创建自定义标签类
public class UserInfoTag extends TagSupport { private UserInfo user; @Override public int doStartTag() throws JspException { try { JspWriter out = this.pageContext.getOut(); if(user == null) { out.println("No UserInfo Found..."); return SKIP_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) { throw new JspException(e.getMessage()); } return SKIP_BODY; } @Override public int doEndTag() throws JspException { return EVAL_PAGE; } @Override public void release() { super.release(); this.user = null; } //getter and setters public UserInfo getUser() { return user; } public void setUser(UserInfo user) { this.user = user; } }
2 在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>
3 配置web.xml
<jsp-config> <taglib> <taglib-uri>/mytaglib</taglib-uri> <taglib-location>/WEB-INF/mytaglib.tld</taglib-location> </taglib> </jsp-config>
4 在需要使用此标签的jsp页面头部引入
<%@ taglib uri="/mytaglib" prefix="cc"%>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。