您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> jsp编程 >> 正文

JSP自定义标签开发入门

作者:佚名    责任编辑:admin    更新时间:2022-06-22

   一般情况下开发jsp自定义标签需要引用以下两个包

import javax.servlet.jsp.*;

import javax.servlet.jsp.tagext.*;

首先我们需要大致了解开发自定义标签所涉及到的接口与类的层次结构(其中SimpleTag接口与SimpleTagSupport类是JSP2.0中新引入的)。

 

 

目标1:自定义一个用表格显示用户信息的简单标签

效果图:

 

 

在jsp页面使用此自定义标签:

假设我们有一个UserInfo的javabean,那么在JSP页面使用此标签只需调用此标签即可

  1. <!-- 创建需要展现UserInfo的实例(用于测试数据) --> 
  2.     <%  
  3.     UserInfo user = new UserInfo();  
  4.     user.setUserName("Xuwei");  
  5.     user.setAge(33);  
  6.     user.setEmail("[email protected]");  
  7.     pageContext.setAttribute("userinfo", user);    
  8.     %> 
  9.    
  10.     <!-- 给标签设置user属性绑定要展现的UserInfo对象  --> 
  11.     <cc:showUserInfo user="${pageScope.userinfo }" /> 

开发步骤:

简单标签的开发我们只要实现Tag接口即可,为了简单起见可以直接继承实现了此接口的TagSupport类

1 创建自定义标签类

  1. public class UserInfoTag extends TagSupport {  
  2.      
  3.     private UserInfo user;  
  4.    
  5.     @Override  
  6.     public int doStartTag() throws JspException {  
  7.         try {  
  8.             JspWriter out = this.pageContext.getOut();  
  9.             if(user == null) {  
  10.                 out.println("No UserInfo Found...");  
  11.             &


nbsp;   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 {  
  •    &nbs


p;    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)

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee" 
  3.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  4.  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"> 
  5. <tlib-version>