import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;public class SplitPager extends BodyTagSupport {
private int pageSize;
private List pagelist;
private HttpServletRequest request;
private int i;
private List currentPageList;
private String emptyMessage;
private int pageFootStyle = 1;
private int pageNo = 1; public int doStartTag() throws JspException {
try {
this.request = (HttpServletRequest) this.pageContext.getRequest();
JspWriter out = this.pageContext.getOut();
HttpServletRequest request = (HttpServletRequest) this.pageContext
.getRequest();
String how = request.getParameter("howPage");
setPageNo();
if (how != null) {
setCurrentPageNo(Integer.parseInt(how));
}
this.i = 1;
this.currentPageList = getCurrentPageList();
this.pageContext.setAttribute("row", this.currentPageList.get(0));
} catch (Exception e) {
e.printStackTrace();
}
return super.doStartTag();
} public int doAfterBody() throws JspException {
try {
if (this.pagelist == null) {
return 0;
}
if (this.i < this.currentPageList.size()) {
this.pageContext.setAttribute("row",
this.currentPageList.get(this.i));
this.i += 1;
return 2;
}
} catch (Exception e) {
e.printStackTrace();
}
return 0;
} public int doEndTag() throws JspException {
try {
this.i = 1;
JspWriter out = this.pageContext.getOut();
if (this.pagelist == null) {
out.print("<center>" + this.emptyMessage + "</center>");
return 6;
}
String bodyContent = this.bodyContent.getString();
out.print(bodyContent);
out.print("<table align=\"right\"><tr><td><br/><form id=\"frm_page\" name=\"frm_page\" method=\"post\">");
// 将请求对象中的所有参数放入隐藏域中,这样在翻页时,是查询条件不会丢失
Enumeration<String> enumeration = request.getParameterNames();// 获取每一个参数的迭代器
while (enumeration.hasMoreElements()) {
String name = enumeration.nextElement();// 获取请求参数名
if (!("howPage".equals(name)) && !("pageNo").equals(name)) {
String value = new String(request.getParameter(name)
.getBytes("iso-8859-1"));// 获取参数值
out.println("<input type=\"hidden\" id=\"" + name
+ "\" name=\"" + name + "\" value=\"" + value
+ "\"/>");
}
}
out.println("<input type=\"hidden\" id=\"howPage\" name=\"howPage\"/><input type=\"hidden\" id=\"pageNo\" name=\"pageNo\" value=\""
+ this.pageNo + "\"" + "/>");
out.println("<a href=javascript:document.getElementById(\"howPage\").value=1;document.frm_page.submit();>首页</a>");
if (this.pageNo > 1) {
out.println("<a href=javascript:document.getElementById(\"howPage\").value=2;document.frm_page.submit();>上页</a>");
} else if (this.pageFootStyle == 2) {
out.println("<a onclick=\"return false\" href=javascript:document.getElementById(\"howPage\").value=2;document.frm_page.submit();>上页</a>");
}
if (this.pageNo < getPageCount()) {
out.println("<a href=javascript:document.getElementById(\"howPage\").value=3;document.frm_page.submit();>下页</a>");
} else if (this.pageFootStyle == 2) {
out.println("<a onclick=\"return false\" href=javascript:document.getElementById(\"howPage\").value=3;document.frm_page.submit();>下页</a>");
}
out.println("<a href=javascript:document.getElementById(\"howPage\").value=4;document.frm_page.submit();>末页</a>");
out.println("第<font color=blue>"
+ this.pageNo
+ "</font>页/共<font color=blue>"
+ getPageCount()
+ "</font>页 </form></td></tr></table>");
} catch (Exception e) {
e.printStackTrace();
}
return super.doEndTag();
} public void setPageList(List pagelist) {
this.pagelist = pagelist;
} public void setPageNo() {
if (this.request.getParameter("pageNo") == null) {
this.pageNo = 1;
} else {
this.pageNo = Integer.parseInt(this.request.getParameter("pageNo")
.toString());
}
} private int getPageCount() {
int size = this.pagelist.size();
return ((size % this.pageSize == 0) ? size / this.pageSize : size
/ this.pageSize + 1);
} public void setEmptyMessage(String emptyMessage) {
this.emptyMessage = emptyMessage;
} public int getPageFootStyle() {
return pageFootStyle;
} public void setPageFootStyle(int pageFootStyle) {
this.pageFootStyle = pageFootStyle;
} private List getCurrentPageList() {
int startIndex = (this.pageNo - 1) * this.pageSize;
int endIndex = startIndex + this.pageSize;
if (endIndex > this.pagelist.size()) {
endIndex = this.pagelist.size();
}
List saveList = new ArrayList();
for (int i = startIndex; i < endIndex; ++i) {
saveList.add(this.pagelist.get(i));
}
return saveList;
} private void setCurrentPageNo(int how) {
switch (how) {
case 1:
this.pageNo = 1;
break;
case 2:
if (this.pageNo <= 1)
return;
this.pageNo -= 1;
break;
case 3:
if (this.pageNo >= getPageCount())
return;
this.pageNo += 1;
break;
case 4:
this.pageNo = getPageCount();
}
}
}<%@ page language="java" contentType="text/html; charset=gb2312"%>
<%@ page import="java.util.List" %>
<%@ page import="com.yxq.valuebean.WordBean" %>
<html>
<head>
<title>聆音博客-查看留言</title>
</head>
<body>
<center>
<table width="778" height="600" border="0" cellspacing="0" cellpadding="0" bgcolor="#F0EAED">
<tr height="281"><td colspan="2"><jsp:include page="../view/FrontTop.jsp" /></td></tr>
<tr>
<td width="230" valign="top"><jsp:include page="../view/FrontLeft.jsp"/></td>
<td width="548" align="center" valign="top">
<table width="95%" border="0" cellspacing="0" cellpadding="0" style="word-break:break-all">
<%
List wordlist=(List)request.getAttribute("wordList");
if(wordlist==null||wordlist.size()==0)
out.print("<tr height='60'><td align='center'>暂无留言可显示!</td></tr>");
else{
int num=wordlist.size();
out.print("<tr height='60'><td align='center'>【我的留言 共 "+num+" 条】</td></tr>");
int i=0;
while(i<wordlist.size()){
WordBean wordSingle=(WordBean)wordlist.get(i);
%>
<tr height="50">
<td style="text-indent:20">
▲ <b><%=wordSingle.getWordAuthor() %></b>
</td>
</tr>
<tr align="right" height="20"><td width="40%"><%=wordSingle.getWordTime()%> </td></tr>
<tr height="60"><td style="text-indent:20" colspan="2" valign="top"> <%=wordSingle.getWordContent()%></td></tr>
<tr height="1"><td background="images/line.jpg" colspan="2"></td></tr>
<%
i++;
}
}
%>
</table>
<form action="WordServlet" method="post">
<input type="hidden" name="action" value="add">
<table width="95%" border="0" cellspacing="8" cellpadding="0" style="margin-top:10">
<tr height="30"><td colspan="2" align="center"><b>给我留言</b></td></tr>
<tr>
<td width="25%" align="center">留 言 者:</td>
<td><input type="text" name="wordAuthor" size="40" value="匿名好友"></td>
</tr>
<tr>
<td width="25%" align="center">留言标题:</td>
<td><input type="text" name="wordTitle" size="60"></td>
</tr>
<tr>
<td align="center">留言内容:</td>
<td><textarea name="wordContent" rows="10" cols="50"></textarea></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="提交" style="width:50">
<input type="reset" value="重置" style="width:50">
</td>
</tr>
</table>
</form>
</td>
</tr>
<tr height="100"><td colspan="2"><%@ include file="../view/FrontEnd.jsp" %></td></tr>
</table>
</center>
</body>
</html>如题,有一个实现分页功能的SplitPager.java类,如何在查看所有留言的使用实现分页显示,求指教。
import java.util.Enumeration;
import java.util.List;import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;public class SplitPager extends BodyTagSupport {
private int pageSize;
private List pagelist;
private HttpServletRequest request;
private int i;
private List currentPageList;
private String emptyMessage;
private int pageFootStyle = 1;
private int pageNo = 1; public int doStartTag() throws JspException {
try {
this.request = (HttpServletRequest) this.pageContext.getRequest();
JspWriter out = this.pageContext.getOut();
HttpServletRequest request = (HttpServletRequest) this.pageContext
.getRequest();
String how = request.getParameter("howPage");
setPageNo();
if (how != null) {
setCurrentPageNo(Integer.parseInt(how));
}
this.i = 1;
this.currentPageList = getCurrentPageList();
this.pageContext.setAttribute("row", this.currentPageList.get(0));
} catch (Exception e) {
e.printStackTrace();
}
return super.doStartTag();
} public int doAfterBody() throws JspException {
try {
if (this.pagelist == null) {
return 0;
}
if (this.i < this.currentPageList.size()) {
this.pageContext.setAttribute("row",
this.currentPageList.get(this.i));
this.i += 1;
return 2;
}
} catch (Exception e) {
e.printStackTrace();
}
return 0;
} public int doEndTag() throws JspException {
try {
this.i = 1;
JspWriter out = this.pageContext.getOut();
if (this.pagelist == null) {
out.print("<center>" + this.emptyMessage + "</center>");
return 6;
}
String bodyContent = this.bodyContent.getString();
out.print(bodyContent);
out.print("<table align=\"right\"><tr><td><br/><form id=\"frm_page\" name=\"frm_page\" method=\"post\">");
// 将请求对象中的所有参数放入隐藏域中,这样在翻页时,是查询条件不会丢失
Enumeration<String> enumeration = request.getParameterNames();// 获取每一个参数的迭代器
while (enumeration.hasMoreElements()) {
String name = enumeration.nextElement();// 获取请求参数名
if (!("howPage".equals(name)) && !("pageNo").equals(name)) {
String value = new String(request.getParameter(name)
.getBytes("iso-8859-1"));// 获取参数值
out.println("<input type=\"hidden\" id=\"" + name
+ "\" name=\"" + name + "\" value=\"" + value
+ "\"/>");
}
}
out.println("<input type=\"hidden\" id=\"howPage\" name=\"howPage\"/><input type=\"hidden\" id=\"pageNo\" name=\"pageNo\" value=\""
+ this.pageNo + "\"" + "/>");
out.println("<a href=javascript:document.getElementById(\"howPage\").value=1;document.frm_page.submit();>首页</a>");
if (this.pageNo > 1) {
out.println("<a href=javascript:document.getElementById(\"howPage\").value=2;document.frm_page.submit();>上页</a>");
} else if (this.pageFootStyle == 2) {
out.println("<a onclick=\"return false\" href=javascript:document.getElementById(\"howPage\").value=2;document.frm_page.submit();>上页</a>");
}
if (this.pageNo < getPageCount()) {
out.println("<a href=javascript:document.getElementById(\"howPage\").value=3;document.frm_page.submit();>下页</a>");
} else if (this.pageFootStyle == 2) {
out.println("<a onclick=\"return false\" href=javascript:document.getElementById(\"howPage\").value=3;document.frm_page.submit();>下页</a>");
}
out.println("<a href=javascript:document.getElementById(\"howPage\").value=4;document.frm_page.submit();>末页</a>");
out.println("第<font color=blue>"
+ this.pageNo
+ "</font>页/共<font color=blue>"
+ getPageCount()
+ "</font>页 </form></td></tr></table>");
} catch (Exception e) {
e.printStackTrace();
}
return super.doEndTag();
} public void setPageList(List pagelist) {
this.pagelist = pagelist;
} public void setPageNo() {
if (this.request.getParameter("pageNo") == null) {
this.pageNo = 1;
} else {
this.pageNo = Integer.parseInt(this.request.getParameter("pageNo")
.toString());
}
} private int getPageCount() {
int size = this.pagelist.size();
return ((size % this.pageSize == 0) ? size / this.pageSize : size
/ this.pageSize + 1);
} public void setEmptyMessage(String emptyMessage) {
this.emptyMessage = emptyMessage;
} public int getPageFootStyle() {
return pageFootStyle;
} public void setPageFootStyle(int pageFootStyle) {
this.pageFootStyle = pageFootStyle;
} private List getCurrentPageList() {
int startIndex = (this.pageNo - 1) * this.pageSize;
int endIndex = startIndex + this.pageSize;
if (endIndex > this.pagelist.size()) {
endIndex = this.pagelist.size();
}
List saveList = new ArrayList();
for (int i = startIndex; i < endIndex; ++i) {
saveList.add(this.pagelist.get(i));
}
return saveList;
} private void setCurrentPageNo(int how) {
switch (how) {
case 1:
this.pageNo = 1;
break;
case 2:
if (this.pageNo <= 1)
return;
this.pageNo -= 1;
break;
case 3:
if (this.pageNo >= getPageCount())
return;
this.pageNo += 1;
break;
case 4:
this.pageNo = getPageCount();
}
}
}<%@ page language="java" contentType="text/html; charset=gb2312"%>
<%@ page import="java.util.List" %>
<%@ page import="com.yxq.valuebean.WordBean" %>
<html>
<head>
<title>聆音博客-查看留言</title>
</head>
<body>
<center>
<table width="778" height="600" border="0" cellspacing="0" cellpadding="0" bgcolor="#F0EAED">
<tr height="281"><td colspan="2"><jsp:include page="../view/FrontTop.jsp" /></td></tr>
<tr>
<td width="230" valign="top"><jsp:include page="../view/FrontLeft.jsp"/></td>
<td width="548" align="center" valign="top">
<table width="95%" border="0" cellspacing="0" cellpadding="0" style="word-break:break-all">
<%
List wordlist=(List)request.getAttribute("wordList");
if(wordlist==null||wordlist.size()==0)
out.print("<tr height='60'><td align='center'>暂无留言可显示!</td></tr>");
else{
int num=wordlist.size();
out.print("<tr height='60'><td align='center'>【我的留言 共 "+num+" 条】</td></tr>");
int i=0;
while(i<wordlist.size()){
WordBean wordSingle=(WordBean)wordlist.get(i);
%>
<tr height="50">
<td style="text-indent:20">
▲ <b><%=wordSingle.getWordAuthor() %></b>
</td>
</tr>
<tr align="right" height="20"><td width="40%"><%=wordSingle.getWordTime()%> </td></tr>
<tr height="60"><td style="text-indent:20" colspan="2" valign="top"> <%=wordSingle.getWordContent()%></td></tr>
<tr height="1"><td background="images/line.jpg" colspan="2"></td></tr>
<%
i++;
}
}
%>
</table>
<form action="WordServlet" method="post">
<input type="hidden" name="action" value="add">
<table width="95%" border="0" cellspacing="8" cellpadding="0" style="margin-top:10">
<tr height="30"><td colspan="2" align="center"><b>给我留言</b></td></tr>
<tr>
<td width="25%" align="center">留 言 者:</td>
<td><input type="text" name="wordAuthor" size="40" value="匿名好友"></td>
</tr>
<tr>
<td width="25%" align="center">留言标题:</td>
<td><input type="text" name="wordTitle" size="60"></td>
</tr>
<tr>
<td align="center">留言内容:</td>
<td><textarea name="wordContent" rows="10" cols="50"></textarea></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="提交" style="width:50">
<input type="reset" value="重置" style="width:50">
</td>
</tr>
</table>
</form>
</td>
</tr>
<tr height="100"><td colspan="2"><%@ include file="../view/FrontEnd.jsp" %></td></tr>
</table>
</center>
</body>
</html>如题,有一个实现分页功能的SplitPager.java类,如何在查看所有留言的使用实现分页显示,求指教。
还有,用JAVA写JSP,愁上加愁.
兄弟,学习一下EL表达式和Jstl标签,要容易的多.