Ⅰ java ee如何用javabean实现页面分页
你可以使用servlet直接实现分页,还用不到javabean呢,当然如果你想使用MVC格式的javabean也是可以的,分页的关键不在于javabean而在于Model对数据库信息的处理,然后将必要的参数反馈给jsP页面,jsp通过接受控制器发过来的数据然后处理显示,就出现你说的分页的效果了
分页的SQL代码数据库部分显示:select top pageSize *from table where 属性 not in (select top pageSize*(PageCount-1) 属性 from table)
Ⅱ JSP+Servlet+JavaBean写“博奥教育网址之家“前台和后台,后台卡在分页了,还要求前台显示排序
不知道你的数据库用的什么 每种数据库的分页不一样的 mysql 用的是limit sqlsever是 top oracle是rownumber
给你一个通用的分页代码 但是数据量小的时候可以 大的时候就很慢了
pagesize //每页显示的数据大小
rowcount//行记录
iPage//页数
pagecount//总页数
recordcount //总的记录数
sqlRst.last();
recordcount = sqlRst.getRow();
sqlRst.beforefirst();
//这段代码是取得总的记录数 然后进行分页计算
if ((request.getParameter("pagesize") != null) && (request.getParameter("pagesize") != "")){
pagesize = Integer.parseInt(request.getParameter("pagesize"));
}
else{
pagesize = 500;
}
rowcount = pagesize;
if ((request.getParameter("iPage") == "") || (request.getParameter("iPage") == null)){
iPage = 1;
}
else{
iPage = Integer.parseInt(request.getParameter("iPage"));
}
if(recordcount % pagesize == 0){
pagecount = recordcount / pagesize;
}
else{
pagecount = (recordcount / pagesize + 1);
}
if (iPage < 1){
iPage = 1;
}
if (iPage > pagecount){
iPage = pagecount;
}
//页码参数
if (((iPage - 1) * pagesize > 0) && ((iPage - 1) * pagesize < recordcount)){
sqlRst.absolute((iPage - 1) * pagesize);
}
else if((iPage - 1) * pagesize <= 0){
sqlRst.beforeFirst();
}
else if((iPage - 1) * pagesize >= recordcount){
sqlRst.absolute(recordcount);
}
//这里是最笨的去数据的分页方法 因为你没有说你的数据库是什么
然后下面用while循环去数据显示就可以了
Ⅲ Java中JavaBean的作用范围:request和page的区别是什么啊
JavaBean在WEB编程中一直被当作模型层对象来使用,不存在作用范围的说法,它是MVC模式的M,使用JavaBean存放数据可以有效的避免频繁的将数据存入或取出某个作用范围。
例如:当我们需要将用户的注册信息通过请求转发传递到新的页面,如果不使用JavaBean我们就得频繁的将用户属性保存到request对象中,在下一个页面又需要一个一个从request对象中取出,这样做相当麻烦,使用JavaBean将用户属性全部封装在一个User对象中我们就可以只存取request对象一次就可以了。
JavaBean早期出现在Java的图形界面编程中(Swing),这也是Java最早开始使用MVC模式,在图形界面Swing编程中的JavaBean有四大属性(根据需要,不必同时存在),而现在WEB编程中我们只需要考虑其中的Simple属性和Index属性就可以了。
page内置对象是Object类的一个实例,它是处理当前请求的JSP页面实现类的实例。page对象在页面的正文中可以被比作是this关键字,它的作用范围仅限于当前page页面。实际开发过程中使用较少。
request内置对象是HttpServletRequest对象的一个实例,代表了一个客户端请求,当用户向服务器发送请求(不论是点击链接还是提交表单),哪怕该请求在服务器上被转发N次,都是一个请求,直到服务器最终发送相应为止,这都是该request对象的生命周期。
例如:在JSP + Servlet + JavaBean的开发中,经常使用Servlet接收请求,将数据保存到JavaBean中,然后将JavaBean保存到request对象,再通过请求转发到负责显示的JSP页面,最终通过标签将JavaBean中保存的数据显示在JSP页面内。
Ⅳ (jsp+javabean+oracle)这个分页代码怎么不能正确显示
逻辑很乱呀....如果数据量小的话,还是用js吧,今后扩展才容易,,如果一定要用jsp最好也是将分页代码提出,封装成java方法,要用的时候直接调用就行。
像这样都放在页面上是越扩展越难的.......
Ⅳ jsp分页代码有问题
还是用javaBean比较好,显示与处理分离,明了。
给你一个,通用的,不过要把其对象放到Session中,切记啦
public class Pagination {
private int currentPage; //当前页
private int totalPages; //总页数
private int pageRows; //每页记录数
private int totalRows; //总记录数
private int pageStartRow; //每页开始记录
private int pageEndRow; //每页结束记录
private boolean hasPreviousPage; //是否有上一页
private boolean hasNextPage; //是否有下一页
private List<Object> totalList; //要分页的数据
//初始化页面信息
public void initPage(List<Object> totalList,int pageRows){
this.totalList = totalList;
this.pageRows = pageRows;
this.totalRows = totalList.size();
this.currentPage = 1;
// 计算总页数
if ((totalRows % pageRows) == 0) {
totalPages = totalRows / pageRows;
if (this.totalRows == 0)
this.totalPages = 1;
} else {
totalPages = totalRows / pageRows + 1;
}
// 默认无上一页
this.hasPreviousPage = false;
// 判断是否有下一页
if (currentPage == totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
// 默认第一页开始的记录数为1
this.pageStartRow = 1;
// 确定第一页结束的记录数
if (totalRows < pageRows) {
this.pageEndRow = totalRows;
} else {
this.pageEndRow = pageRows;
}
}
//获取当前页信息
public List<Object> getCurrentPageList(){
if(currentPage*pageRows<totalRows){
pageEndRow=currentPage*pageRows;
pageStartRow=pageEndRow-pageRows;
}else{
pageEndRow=totalRows;
pageStartRow=pageRows*(totalPages-1);
}
List<Object> pageList=new ArrayList<Object>(pageEndRow-pageStartRow+1);
if(totalRows!=0){
for(int i=pageStartRow;i<pageEndRow;i++){
pageList.add(totalList.get(i));
}
}
return pageList;
}
//获取上一页信息
public List<Object> getPreviousPageList(){
currentPage = currentPage - 1;
if (currentPage < 1){
currentPage = 1;
}
if (currentPage >= totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
if ((currentPage - 1) > 0) {
hasPreviousPage = true;
} else {
hasPreviousPage = false;
}
List<Object> pageList = this.getCurrentPageList();
return pageList;
}
//获取下一页信息
public List<Object> getNextPageList(){
currentPage = currentPage + 1;
if (currentPage > totalPages)
currentPage = totalPages;
if ((currentPage - 1) > 0) {
hasPreviousPage = true;
} else {
hasPreviousPage = false;
}
if (currentPage >= totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
List<Object> pageList = this.getCurrentPageList();
return pageList;
}
//获取指定页信息
public List<Object> getAppointPageList(int currentPage){
this.currentPage = currentPage;
if (currentPage > this.totalPages)
this.currentPage = this.totalPages;
if (currentPage < 1)
this.currentPage = 1;
if (this.currentPage > 1) {
this.hasPreviousPage = true;
} else {
this.hasPreviousPage = false;
}
if (this.currentPage < this.totalPages) {
this.hasNextPage = true;
} else {
this.hasNextPage = false;
}
List<Object> pageList = this.getCurrentPageList();
return pageList;
}
// 返回当前页
public int getCurrentPage() {
return currentPage;
}
// 返回每页记录数
public int getPageRows() {
return pageRows;
}
// 返回当前页开始记录
public int getPageStartRow() {
return pageStartRow;
}
// 返回当前页结束记录
public int getPageEndRow() {
return pageEndRow;
}
// 返回总页数
public int getTotalPages() {
return totalPages;
}
// 返回总记录数
public int getTotalRows() {
return totalRows;
}
// 返回是否有上一页
public boolean isHasPreviousPage() {
return hasPreviousPage;
}
// 返回是否有下一页
public boolean isHasNextPage() {
return hasNextPage;
}
}