jsp標簽
剛剛結束了一個項目,有點時間,所以先補充補充自己的知識,昨天學了一下Jsp標簽,感覺挺好的,可以使jsp頁面干凈不少,維護起來更方便了。下邊就開始進入正題:
首先創建一個Pagination.tld文件,標簽文件:
<?xml version="1.0" encoding="UTF-8"?>
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>Pagination</shortname>
<tag>
<name>Pagination</name>
<tagclass>tags.Pagination</tagclass>
<attribute>
<name>allpage</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>currentpage</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>action</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>allcount</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
tlibversion: 標簽庫版本
jspversion: 標簽庫依賴的jsp版本
shortname: 標簽庫名
tag 開始一個標簽
name 標簽名
tagclass 指定標簽處理程序類
attribute 開始一個標簽屬性,可用于傳入參數
name 屬性名
required和rtexprvalue都是屬性的設置,均有2個屬性ture和false用來決定是否必須指定
接下來創建該標簽的處理程序類Pagination.java:
package tags;
import java.util.*;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class Pagination extends TagSupport {
private String allpage; //總頁數
private String currentpage; //當前頁數
private String action; //form請求地址
private String allcount; //總記錄數
public int doStartTag() throws JspException {
try {
StringBuffer cont = new StringBuffer();
String context = "<form action='"+action+"'>" +
"<table><tr><td colspan='7' align='right'>" +
"<a>總頁數:"+allpage+"</a> " +
"<a>總記錄數:"+allcount+"</a> ";
if(Integer.valueOf(currentpage)>2){
context = context + "<a href='"+action+"?num=1'>第一
頁</a> ";
}
if(Integer.valueOf(currentpage)>1){
context = context + "<a href='"+action+"?num="+
(Integer.valueOf(currentpage)-1)+"'>前一頁</a> ";
}
context = context + "<a >當前
頁:"+currentpage+"</a> ";
if(Integer.valueOf(currentpage)<Integer.valueOf(allpage)){
context = context + "<a href='"+action+"?num="+
(Integer.valueOf(currentpage)+1)+"'>下一頁</a> ";
}
if(Integer.valueOf(currentpage)<(Integer.valueOf(allpage)-
1)){
context = context + "<a href='"+action+"?
num="+allpage+"'>最后一頁</a> ";
}
context = context + "</td><td align='center' width='15%'>" +
"<input type='text'
size='1' name='num' id='pagenum' value='' />" +
"<input
type='submit' value='GO' id='gobutton'></td></tr></table>";
pageContext.getOut().print(context);
}catch(Exception e) {
throw new JspException("SimpleTag:"+e.getMessage());
}
return EVAL_BODY_INCLUDE;
}
public int doEndTag() {
return EVAL_PAGE;
}
public void setAllpage(String allpage) {
this.allpage = allpage;
}
public void setCurrentpage(String currentpage) {
this.currentpage = currentpage;
}
public void setAction(String action) {
this.action = action;
}
public void setAllcount(String allcount) {
this.allcount = allcount;
}
}
最后是要顯示的Jsp頁index.jsp:
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="/WEB-INF/tags/Pagination.tld" prefix="Pagination" %>
<html>
<head>
<script type="text/javascript" src="js/Time.js"></script>
</head>
<body>
<Pagination:Pagination allcount="20" action="servlet" currentpage="1" allpage="200"></Pagination:Pagination>
</body>
</html>