jstl自定义标签(如何写一个自定义标签)

        一、开发自定义标签一般需要以下三个步骤:

             1  创建标签的处理类

             2 创建标签库描述文件,该文件是采用XML文件格式;

             3  在需要使用该标签的JSP页面中引入;

       二 、举一个例子,步骤如下:

          1  先在WEB/INF下新建一个文件夹,我这儿是upfiles,在这个文件夹下,建立标签库描述文件mytag.tld(具体步骤如下)

                建立XML file,点击next,选择DTD文件

             


      2  具体代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<taglib 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/jsee/web-jsptagLibrary_2_0.xsd"
    version="2.0">
  <tlibversion>1.0</tlibversion>
  <shortname>mytag</shortname>
  <uri>/WEB-INF/upfiles/mytag.tld</uri>
  <tag>
    <name>YbCategoryListTag</name>
    <tagclass>blog.tag.YbCategoryListTagHandler</tagclass>
    <body-content>empty</body-content>
    <attribute>
     <name>blogid</name>
     <required>true</required>
     <rtexprvalue>true</rtexprvalue>
    </attribute>
     <attribute>
     <name>categoryid</name>
     <required>true</required>
     <rtexprvalue>true</rtexprvalue> 
    </attribute>
  </tag>
</taglib>
   3 建立标签处理类,代码如下:

package blog.tag;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.sql.*;
import java.util.*;
import javabean.DBUtil;
import javabean.YbCategory;
import javabean.YbUser;
import blog.service.YbCategoryService;
public class YbCategoryListTagHandler extends SimpleTagSupport{
   private Integer blogid;
   private Integer categoryid;
   public void doTag() throws JspException, java.io.IOException{
	   System.out.println("我喜欢你");
	   JspWriter out=getJspContext().getOut();
	   YbCategoryService  ybCategoryService=new  YbCategoryService();
	   YbUser user=new YbUser();
	   String name=user.getUsername();
	   System.out.println(user.getUsername());
	   String sql="select blog_id from yb_user where user_name=?";
	   Connection con=DBUtil.getDb();
	   PreparedStatement pstmt=null;
	   ResultSet rs=null;
	   try{
		   pstmt=con.prepareStatement(sql);
		   pstmt.setString(1,name);
			rs=pstmt.executeQuery();
			if(rs.next()){
				   user.setBlogid(rs.getInt("blog_id"));
			}   
	   }catch(SQLException ex){
		   System.out.println(ex.getMessage());
	   }
	   List<YbCategory> list=ybCategoryService.findAllCategories(user.getBlogid());
	   System.out.println(list.size());
	   StringBuilder sb=new StringBuilder();
	   for(YbCategory c:list){
		   if(c.getCategoryid()!=null||list.size()>0){
			   sb.append(c.getCategorytitle()).append("<br/>");
		   }else if(list.size()==0){
			   System.out.println("没有category");
			   sb.append("<a href=\"YbArticleServlet?method=list&blogid=").append(blogid).append("&categoryid").append(c.getCategoryid()).append("\")>");
			   sb.append(c.getCategorytitle()).append("</a><br/>");
		   }
	   }

	   sb.append("<br/>");
	   out.println(sb.toString());
   }
	
	public void setBlogid(Integer blogid){
		this.blogid=blogid;
	}
	
	public void setCategoryid(Integer categoryid){
		this.categoryid=categoryid;
	}
}
    4 在JSP页面中引用:

     

<%@taglib uri="/WEB-INF/upfiles/mytag.tld" prefix="mytag"%>
   5 到此,一个自定义标签,已经完成了,希望对你有帮助!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值