翻页——servlet-jsp-oracle 初学,老师教得太快了,有些跟不上了,现在用户管理里要实现一个翻页功能,主要是上一页,下一页和跳转功能。最好能用servlet控制,JSP输出。链接的数据库是oracle。 不要让我去搜帖子,搜过了,但是改吧改吧,还是不行~能否给个简便的实现方式,让我模仿一下,不然,根本下不了手。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 贴下显示的jsp:<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %><%@page import="java.util.List"%><%@page import="ibmetp.jdbc.vo.TUserVo"%><%@ page language="java" import="java.sql.*,java.io.*" pageEncoding="utf-8"%><% List<TUserVo> resultList=(List<TUserVo>)request.getAttribute("list");%><jsp:useBean id="userService" class="ibmetp.jdbc.util.JdbcUtil" scope="page"/><head><meta http-equiv="Content-Language" content="zh-cn"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="Cache-Control" content="no-store"/><meta http-equiv="Pragma" content="no-cache"/><meta http-equiv="Expires" content="0"/><title>用户查询列表</title><script type="text/javascript"> function query() { queryForm.submit(); } function chked(checked) { var userIds=document.getElementsByName("userId"); if(userIds!=null && userIds.length>0) { for(var i=0;i<userIds.length;i++) { userIds[i].checked=checked; } } } function add() { queryForm.action="../pages/userAdd.jsp"; queryForm.submit(); } function del() { queryForm.action="../servlet/UserDelServlet"; queryForm.submit(); }</script></head><body><form name="queryForm" action="UserListServlet" method="post"> <table border="1" width="100%"> <tr> <td>用户名称:</td> <td><input type="text" name="userName" size="20"></td> <td>用户编号:</td> <td><input type="text" name="userNo" size="20"></td> </tr> <tr> <td>年龄:</td> <td><input type="text" name="age" size="20"></td> <td>生日:</td> <td><input type="text" name="birthday" size="20"></td> </tr> <tr> <td>性别:</td> <td> 女<input type="radio" value="0" name="sex"> 男<input type="radio" value="1" name="sex"> </td> <td>爱好:</td> <td> 足球<input type="checkbox" name="interest" value="足球"> 音乐<input type="checkbox" name="interest" value="音乐"> 看书<input type="checkbox" name="interest" value="看书"> 书法<input type="checkbox" name="interest" value="书法"> 篮球<input type="checkbox" name="interest" value="篮球"> </td> </tr> <tr> <td>地址:</td> <td colspan="3"><input type="text" name="address" size="79"></td> </tr> <tr> <td colspan="4"> <input type="button" value="查询" name="queryBtn" onclick="query()"> <input type="reset" value="重置" name="resetBtn"> </td> </tr> </table><br><table border="0" width="100%"> <tr> <td><input type="button" value="新增" name="addBtn" onclick="add()"> <input type="button" value="删除" name="deleteBtn" onclick="del()"></td> </tr></table><table border="1" width="100%"> <tr> <td><input type="checkbox" name="selectAll" onclick="chked(this.checked)"></td> <td>用户名称</td> <td>用户编号</td> <td>年龄</td> <td>生日</td> <td>性别</td> <td>爱好</td> <td width="186">地址</td> </tr><% if(resultList!=null) { for(int i=0;i<resultList.size();i++) { TUserVo user=resultList.get(i); String sex=user.getSex().equals("0")?"女":"男"; String interest=""; if(user.getInterest()!=null) { for(int ii=0;ii<user.getInterest().length;ii++) { interest+=user.getInterest()[ii]+","; } interest=interest.substring(0,interest.length()-1); }%> <tr> <td> <input type="checkbox" name="userId" value="<%=user.getUserId() %>"> </td> <td> <a href="UserUpdateServlet?userId=<%=user.getUserId()%>&action=edit"><%=user.getUserName() %></a> </td> <td><%=user.getUserNo() %></td> <td><%=user.getAge() %></td> <td><%=userService.formatDate(user.getBirthday())%></td> <td><%=sex%></td> <td><%=interest %></td> <td width="186"><%=user.getAddress() %></td> </tr><% } }%></table><table border="1" width="100%"> <tr> <td>上一页 下一页 到<input type="text" name="goPage" size="7">页</td> </tr></table></form></body></html> public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = (String) request.getSession().getAttribute("user"); System.out.println(name); int totalPage = new UserDAOImpl().getTotalLinkPage(name); String Page = request.getParameter("CurrentPage"); UserDAO udao = new UserDAOImpl(); int CurrentPage = 0; if(Page==null){ CurrentPage=1; }else{ CurrentPage = Integer.parseInt(Page); } if (CurrentPage < 1) { CurrentPage = 1; } if (CurrentPage > totalPage) { CurrentPage = totalPage; } List<LinkDTO> list = udao.selectLinkByPage(CurrentPage,name); request.setAttribute("list", list); request.setAttribute("CurrentPage", CurrentPage); request.setAttribute("maxPage", totalPage); request.getRequestDispatcher("main.files/linkman.jsp").forward(request, response); }这是servlet中的主要代码自己写方法获取数据的总条数和总页数就可以了先看看自己会不会写 页面上显示如果你还没学过框架的话推荐使用JSTL标签,这是个例子<c:forEach var="bm" items="${list}"> <tr><td align="center"><input type="checkbox" id="sel" name="sel" value="${bm.id}"></td> <td align="center"><img src="<%=basePath %>images/bg_users.gif"></td> <td align="center"><img src="<%=basePath %>images/t_5.gif"><img src="<%=basePath %>images/t_5.gif"> <img src="<%=basePath %>images/t_5.gif"></td> <td align="center"><c:out value="${bm.nickname}"></c:out></td> <td align="center"><c:out value="${bm.others}"></c:out></td> <td align="center"><a href="ListAllUserServlet?who=${bm.others}"><img src="<%=basePath%>images/xie.jpg"></a></td> <td align="center"><a href="main.files/updUser.jsp?zt=${bm.others}"><img src="<%=basePath %>images/xg.gif" style="cursor:hand"></a></td> <td align="center"><a href="delUserServlet?zw=${bm.others}"><img src="<%=basePath %>images/sc.gif" style="cursor:hand"></a></td> </tr> </c:forEach> 设置一个PageBean,存储当前页,总条数,每页最大对象数,然后向DAO传入PageBean的属性,使用sql实现分页 select * from ( select row_.*, rownum rownum_ from ( select person_id, chn_name, chn_firstname_py from t_pbase_info ) row_ where rownum <=20 ) where rownum_ >=11楼主可以拿这段Oracle的分页SQL代码去改改。只要改动 rownum <=20 和rownum_ >=11这两个的数字就行了。 hibernate分页 关于extjs的 j2ee的程序员要考什么证书比较吃香 推荐书籍 obj那2个配置文件在myeclipse中编辑怎么才能出编辑提示信息? 客户端调用web service 学J2EE的大专的毕业生就会被人企业歧视呢? java.lang.IllegalStateException报错 刚接触web service ,问一个关于web service做中间层的问题 Jsp获取不到controller层的model数据 jfreechar在Linux下中文乱码·高分求教 半路出家,空中楼阁啊。。。菜鸟请教Servelet的问题
<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
<%@page import="java.util.List"%>
<%@page import="ibmetp.jdbc.vo.TUserVo"%>
<%@ page language="java" import="java.sql.*,java.io.*" pageEncoding="utf-8"%>
<%
List<TUserVo> resultList=(List<TUserVo>)request.getAttribute("list");
%>
<jsp:useBean id="userService" class="ibmetp.jdbc.util.JdbcUtil" scope="page"/>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Cache-Control" content="no-store"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>
<title>用户查询列表</title>
<script type="text/javascript">
function query()
{
queryForm.submit();
} function chked(checked)
{
var userIds=document.getElementsByName("userId");
if(userIds!=null && userIds.length>0)
{
for(var i=0;i<userIds.length;i++)
{
userIds[i].checked=checked;
}
}
} function add()
{
queryForm.action="../pages/userAdd.jsp";
queryForm.submit();
} function del()
{
queryForm.action="../servlet/UserDelServlet";
queryForm.submit();
}
</script>
</head><body>
<form name="queryForm" action="UserListServlet" method="post">
<table border="1" width="100%">
<tr>
<td>用户名称:</td>
<td><input type="text" name="userName" size="20"></td>
<td>用户编号:</td>
<td><input type="text" name="userNo" size="20"></td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="text" name="age" size="20"></td>
<td>生日:</td>
<td><input type="text" name="birthday" size="20"></td>
</tr>
<tr>
<td>性别:</td>
<td>
女<input type="radio" value="0" name="sex">
男<input type="radio" value="1" name="sex">
</td>
<td>爱好:</td>
<td>
足球<input type="checkbox" name="interest" value="足球">
音乐<input type="checkbox" name="interest" value="音乐">
看书<input type="checkbox" name="interest" value="看书">
书法<input type="checkbox" name="interest" value="书法">
篮球<input type="checkbox" name="interest" value="篮球">
</td>
</tr>
<tr>
<td>地址:</td>
<td colspan="3"><input type="text" name="address" size="79"></td>
</tr>
<tr>
<td colspan="4">
<input type="button" value="查询" name="queryBtn" onclick="query()">
<input type="reset" value="重置" name="resetBtn">
</td>
</tr>
</table><br>
<table border="0" width="100%">
<tr>
<td><input type="button" value="新增" name="addBtn" onclick="add()">
<input type="button" value="删除" name="deleteBtn" onclick="del()"></td>
</tr>
</table>
<table border="1" width="100%">
<tr>
<td><input type="checkbox" name="selectAll" onclick="chked(this.checked)"></td>
<td>用户名称</td>
<td>用户编号</td>
<td>年龄</td>
<td>生日</td>
<td>性别</td>
<td>爱好</td>
<td width="186">地址</td>
</tr>
<%
if(resultList!=null)
{
for(int i=0;i<resultList.size();i++)
{
TUserVo user=resultList.get(i);
String sex=user.getSex().equals("0")?"女":"男";
String interest="";
if(user.getInterest()!=null)
{
for(int ii=0;ii<user.getInterest().length;ii++)
{
interest+=user.getInterest()[ii]+",";
}
interest=interest.substring(0,interest.length()-1);
}
%>
<tr>
<td>
<input type="checkbox" name="userId" value="<%=user.getUserId() %>">
</td>
<td>
<a href="UserUpdateServlet?userId=<%=user.getUserId()%>&action=edit"><%=user.getUserName() %></a>
</td>
<td><%=user.getUserNo() %></td>
<td><%=user.getAge() %></td>
<td><%=userService.formatDate(user.getBirthday())%></td>
<td><%=sex%></td>
<td><%=interest %></td>
<td width="186"><%=user.getAddress() %></td>
</tr>
<%
}
}
%>
</table>
<table border="1" width="100%">
<tr>
<td>上一页 下一页 到<input type="text" name="goPage" size="7">页</td>
</tr>
</table>
</form>
</body>
</html>
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = (String) request.getSession().getAttribute("user");
System.out.println(name);
int totalPage = new UserDAOImpl().getTotalLinkPage(name);
String Page = request.getParameter("CurrentPage");
UserDAO udao = new UserDAOImpl();
int CurrentPage = 0;
if(Page==null){
CurrentPage=1;
}else{
CurrentPage = Integer.parseInt(Page);
}
if (CurrentPage < 1) {
CurrentPage = 1;
}
if (CurrentPage > totalPage) {
CurrentPage = totalPage;
}
List<LinkDTO> list = udao.selectLinkByPage(CurrentPage,name);
request.setAttribute("list", list);
request.setAttribute("CurrentPage", CurrentPage);
request.setAttribute("maxPage", totalPage);
request.getRequestDispatcher("main.files/linkman.jsp").forward(request,
response);
}这是servlet中的主要代码自己写方法获取数据的总条数和总页数就可以了先看看自己会不会写
<tr><td align="center"><input type="checkbox" id="sel" name="sel" value="${bm.id}"></td>
<td align="center"><img src="<%=basePath %>images/bg_users.gif"></td>
<td align="center"><img src="<%=basePath %>images/t_5.gif"><img src="<%=basePath %>images/t_5.gif">
<img src="<%=basePath %>images/t_5.gif"></td>
<td align="center"><c:out value="${bm.nickname}"></c:out></td>
<td align="center"><c:out value="${bm.others}"></c:out></td>
<td align="center"><a href="ListAllUserServlet?who=${bm.others}"><img src="<%=basePath%>images/xie.jpg"></a></td>
<td align="center"><a href="main.files/updUser.jsp?zt=${bm.others}"><img src="<%=basePath %>images/xg.gif" style="cursor:hand"></a></td>
<td align="center"><a href="delUserServlet?zw=${bm.others}"><img src="<%=basePath %>images/sc.gif" style="cursor:hand"></a></td>
</tr>
</c:forEach>
select row_.*, rownum rownum_ from (
select person_id, chn_name, chn_firstname_py from t_pbase_info
) row_ where rownum <=20
) where rownum_ >=11楼主可以拿这段Oracle的分页SQL代码去改改。只要改动 rownum <=20 和rownum_ >=11这两个的数字就行了。