一、开发自定义标签一般需要以下三个步骤:
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 到此,一个自定义标签,已经完成了,希望对你有帮助!