tag开发实例源代码
已经测试过
参考:
http://java.sun.com/products/jsp/tutorial/TagLibrariesTOC.html
已经测试过
参考:
http://java.sun.com/products/jsp/tutorial/TagLibrariesTOC.html
/**
* 2009-5-6
* zhenjw
*/
package zhenjw;
import java.io.IOException;
import javax.servlet.jsp.JspException;
//tag 关键是要继承这个类
import javax.servlet.jsp.tagext.TagSupport;
/**
* @author zhenjw
*
*/
public class TurnPageTag extends TagSupport {
private int totalRow;
private int pageSize;
private int pageNo;
private String onclick;
private String FirstPage="首页";
private String PrePage="上一页";
private String NextPage="下一页";
private String LastPage="尾页";
/**
* @return the onclick
*/
public String getOnclick() {
return onclick;
}
/**
* @param onclick the onclick to set
*/
public void setOnclick(String onclick) {
this.onclick = onclick;
}
/**
* @return the pageNo
*/
public int getPageNo() {
return pageNo;
}
/**
* @param pageNo the pageNo to set
*/
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
/**
* @return the pageSize
*/
public int getPageSize() {
return pageSize;
}
/**
* @param pageSize the pageSize to set
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
/**
* @return the totalRow
*/
public int getTotalRow() {
return totalRow;
}
/**
* @param totalRow the totalRow to set
*/
public void setTotalRow(int totalRow) {
this.totalRow = totalRow;
}
/* (non-Javadoc)
* @see javax.servlet.jsp.tagext.TagSupport#doStartTag()
*/
public int doStartTag() throws JspException {
// TODO Auto-generated method stub
StringBuilder strB=new StringBuilder();
//首页 上一页
if(pageNo>1)
strB.append("<a href='#' onclick='").append(onclick).append("(1);return false;'>").append(this.FirstPage).append("</a>").append(" ")
.append("<a href='#' onclick='").append(onclick).append("(").append(pageNo-1).append(");return false;'>").append(this.PrePage).append("</a>");
else
strB.append(this.FirstPage).append(" ").append(this.PrePage);
strB.append(" ");
//
int totalPage=this.getTotalPage();
//下一页 尾页
if(pageNo<totalPage)
strB.append("<a href='#' onclick='").append(onclick).append("(").append(pageNo+1).append(");return false;'>")
.append(this.NextPage).append("</a>")
.append(" ")
.append("<a href='#' onclick='").append(onclick).append("(").append(totalPage).append(");return false;'>")
.append(this.LastPage).append("</a>");
else
strB.append(this.NextPage)
.append(" ")
.append(this.LastPage);
strB.append(" ");
try {
this.pageContext.getOut().write(strB.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new JspException(e);
}
return super.doStartTag();
}
private int getTotalPage()
{
return (this.totalRow+this.pageSize-1)/this.pageSize;
}
}
JSP文件
<%@ taglib uri="/tlt" prefix="tlt" %>
web.xml文件
<servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/example/*</url-pattern>
</servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<servlet-class>Dispatcher</servlet-class>
</servlet>
<taglib>
<taglib-uri>/tlt</taglib-uri>
<taglib-location>/WEB-INF/taglib.tld</taglib-location>
</taglib>