JSP自定义标签开发

2014-11-24 08:55:43 · 作者: · 浏览: 0

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

import javax.servlet.jsp.*;

import javax.servlet.jsp.tagext.*;

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

效果图:

\html:file://C:\Users\lwx194377\Desktop\JSP自定义标签开发入门 - 阳阳多 - 博客园.mht!https://www.cppentry.com/upload_files/article/49/1_ofhho__.png">

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

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

<%

    UserInfo user = new UserInfo();

    user.setUserName("Xuwei");

    user.setAge(33);

    user.setEmail("test@test.test");

    pageContext.setAttribute("userinfo", user);  

    %>

    
  

    
  

开发步骤:

简单标签的开发我们只要实现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("
  
   ");

            out.println("
   
     "); out.println("
     "); out.println("
     "); out.println("
    "); out.println("
    
     "); out.println("
     "); out.println("
     "); out.println("
    "); out.println("
    
     "); out.println("
     "); out.println("
     "); out.println("
    "); out.println("
   
Username:" + user.getUserName() + "
Age:" + user.getAge() + "
Email:" + user.getEmail() + "
"); } catch(Exception e) { throw new JspException(e.getMessage()); } return SKIP_BODY; } @Override public int doEndTag() throws JspException { return eva l_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.0
   


   
    2.0
   


   
    cc
   


   
    /mytaglib
   


    
    
     showUserInfo
     
    
     com.mytags.UserInfoTag
     
    
     empty
     
     
     
      user
      
     
      false
      
     
      true
      
     
   


  

 

3 配置web.xml

  

    
    
    
     /mytaglib
     
    
     /WEB-INF/mytaglib.tld
     
   

  
   

4 在需要使用此标签的jsp页面头部引入

<%@ taglib uri="/mytaglib" prefix="cc"%>