我分页是用struts的logic
<logic:present name="yourFormName" property="yourVectorName">
<logic:iterate id="yourId" name="yourFormName" property="yourVectorName">
<bean:write name="yourId" property="inYourVector"/>
</logic:iterate>
</logic:present>
一般是现在servlet里取好数据送到要显示的form里。然后返回jsp。
#####################
ps:我只会用struts,不好意思
<logic:present name="yourFormName" property="yourVectorName">
<logic:iterate id="yourId" name="yourFormName" property="yourVectorName">
<bean:write name="yourId" property="inYourVector"/>
</logic:iterate>
</logic:present>
一般是现在servlet里取好数据送到要显示的form里。然后返回jsp。
#####################
ps:我只会用struts,不好意思
解决方案 »
- jsp中报对象不支持此属性错误!
- PreparedStatement出错,请帮忙指定一下?
- jsp页面做成静态的html页面,求方法!
- 求救,wenb开发遇到的问题
- 急求:有没有用jsp写的blog的open source
- 关于dataSource.getConnection(String url,String pass)的问题
- [求助]关于“equals”和“==”的区别
- 关于搜索功能中解决中文显示的问题!
- 各位大侠救火:jsp不刷新页面能够让页面改变吗?
- 关于jsp中取数据库中字段名的问题(急急急急急,马上解答马上给分)
- 这个问题总是弄不懂?请帮忙,谢谢!
- JSP+JavaBean是不是可以取代大部分的Servlet?
package com.globe;
import com.globe.DbConnection;
import java.sql.*;
import java.util.*;
import java.io.*;
public class PaginationBean{
ResultSet Rst=null;
DbConnection db=null;
int RowCount=0;
int intPageSize=10;
int intPageCount=0;
int intPage=1;
int Total;
String SQL=null;
public PaginationBean(){
}
public int getPageCount(){
return this.intPageCount;
}
public void setPage(String Page){
this.intPage=Integer.parseInt(Page);
}
public void setPageSize(String Size){
this.intPageSize=Integer.parseInt(Size);;
}
public int getPageSize(){
return this.intPageSize;
}
public void setSQL(String SQL){
this.SQL=SQL;
}
public boolean haveRecorder(){
System.out.print(SQL);
db=new DbConnection();
db.openConnection();
try{
Rst=db.executeQuery(SQL);
Rst.last();
int RowCount =Rst.getRow();
System.out.print(RowCount);
if (RowCount<=0)
{return false;}
Rst.first();
intPageCount = (RowCount + intPageSize - 1) / intPageSize; //总页码数 if (intPage > RowCount)
intPage = intPageCount; //输入页码数大于总页码数的处理 if (intPageCount > 0)
{
int startrow = (intPage - 1) * intPageSize + 1; //开始显示记录数
Rst.absolute(startrow);
}
}
catch(SQLException e){
return false;
}
return true;
}public Hashtable Pagination(){
Hashtable returnrow = new Hashtable();
Hashtable[] returnColumn;
try{
//判断字段数据劳数组
//date 返回 93
//int 返回 2
//String 返回 12 数组
ResultSetMetaData columnType = Rst.getMetaData();
returnColumn= new Hashtable[intPageSize];//输出数据
int i = 0;
int a;
String ResultSet;
int Result;
do
{
returnColumn[i]=new Hashtable();
for(int t = 1;t<columnType.getColumnCount()+1;t++){
System.out.println("type=" + columnType.getColumnType(t));
if (columnType.getColumnType(t) == 12||columnType.getColumnType(t)==1)
{
ResultSet = Rst.getString(t);
if (ResultSet==null){
ResultSet="";
}
a=t-1;
returnColumn[i].put(Integer.toString(a), ResultSet);
System.out.print(ResultSet);
System.out.print(returnColumn[i].get("0"));
} else if (columnType.getColumnType(t) == 2)
{
Result = Rst.getInt(t);
a=t-1;
returnColumn[i].put(Integer.toString(a), new Integer(Result)); } else if (columnType.getColumnType(t) == 93)
{
ResultSet = Rst.getDate(t).toString();
if (ResultSet==null){
ResultSet="";
}
a=t-1;
returnColumn[i].put(Integer.toString(a), ResultSet); }
}//获取数据写入hashtable
System.out.print(returnColumn[0].get("0"));
returnrow.put(Integer.toString(i), returnColumn[i]);
Rst.next();
i++;
System.out.print(i);
}while (i < intPageSize && !Rst.isAfterLast());
}catch(SQLException e){System.out.print(e.getMessage());}
return returnrow;
}
}
在jsp页面中
int index=((showpage-1)*pagesize+1)-1;//vector是以第0位开始的。
int end=index+pagesize-1;
if(end>vector.size())
end=vector.size();for(int i=index;i<end;i++)
{
out.println((yourclass)vector.get(i).getXXX());}
至于减一的那些地方我没测试过。限想到的,不保证对,但思路应该没错。
剩余的自己完成吧。
int end=index+pagesize-1;
if(end>vector.size())
end=vector.size();for(int i=index;i<end;i++)
{
out.println((yourclass)vector.get(i).getXXX());}就这种思路,
我做的系统好多用到vector
都是这样实现分页的
****.java
{
在LinkmanListBean有一个类型为 java.util.Collection 的变量
LinkmanListBean linkmanListBean = new LinkmanListBean();
connection = dbcm.getConnection();连接数据库
DBAccess dba = new DBAccess(connection);
String sql ="SELECT ID,name from linkman ";
ResultSet rs = dba.openSelect(sql);
rs.last();
int count = rs.getRow();
在页面上提交的的信息
linkmanListBean.setStart(String.valueOf(start));开始的条目
linkmanListBean.setRange(String.valueOf(range));每页显示的条目
linkmanListBean.setCount(String.valueOf(count));一共信息的数目
LinkedList linkmanList = new LinkedList();
if (count > 0) {if (start > count) {
throw new Exception("NO_TOPICS");
}
rs.absolute(start);
for (int i = 0; i < range && count > 0; i++) {
SupplierMsg linkmanListmsg = new SupplierMsg();
linkmanListmsg.setU_id(rs.getString("ID"));
linkmanListmsg.setM_name(rs.getString("name"));
linkmanListmsg.setSupplier(String.valueOf(supplier));
linkmanList.add(linkmanListmsg);
rs.next();
count--;
}
}
linkmanListBean.setLinkmanmsg(linkmanList);
rs.close();
dba.closeSelect();
return linkmanListBean;返回结果
以上是写在java文件里的
在jsp页面调用 <%
Iterator Linkmanlist=linkmanListBean.getLinkmanmsg().iterator();
while(Linkmanlist.hasNext()){
SupplierMsg linkmanlistmsg=(SupplierMsg)Linkmanlist.next();
%>
<tr bgcolor="#F3F3F3">
<td width="24%" height="10" ><A HREF="listlinkmanmsg.do?u_id=<%=linkmanlistmsg.getU_id()%>&supplier=<%=linkmanlistmsg.getSupplier()%>"><%=linkmanlistmsg.getM_name()%></A></td>
<td width="22%" height="10" ><A HREF="Admindellinkman.do?u_id=<%=linkmanlistmsg.getU_id()%>&supplier=<%=linkmanlistmsg.getSupplier()%>">删除</A></td>
<td width="26%" height="10" > </td>
<td width="28%" height="10" > </td>
</tr>
<% }
这是我通过被人的代码,改写了一下,测试通过的,也可以联系我![email protected]