欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

通过bboss mvc实现分页操作

程序员文章站 2024-02-28 18:59:16
...
通过bboss mvc实现分页操作
mvc demo下载和部署方法可以参考文档:
[url]http://yin-bp.iteye.com/blog/1026245[/url]

这里介绍一下通过bboss mvc实现分页操作的实现步骤,呵呵
1.首先编写分页demo的配置文件为:
<?xml version="1.0" encoding='gb2312'?>
<!--
bboss-demo.xml
描述:分页处理控制器demo
-->
<properties>
<property name="/pager/*.html" class="org.frameworkset.spi.mvc.PaginController"/>
</properties>


2.编写控制器代码类
package org.frameworkset.spi.mvc;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.PageContext;

import org.frameworkset.util.annotations.PagerParam;
import org.frameworkset.util.annotations.RequestParam;
import org.frameworkset.web.servlet.ModelAndView;
import org.frameworkset.web.servlet.ModelMap;

import test.pager.TableInfo;

import com.frameworkset.common.poolman.PreparedDBUtil;
import com.frameworkset.common.poolman.SQLExecutor;
import com.frameworkset.util.ListInfo;

/**
*
* @author Administrator
*
*/
public class PaginController {

/**
* http://localhost:8080/bboss-mvc/pager/firstpagerdemo.html
* @param sortKey
* @param desc
* @param offset
* @param pagesize
* @return
*/
public ModelAndView firstpagerdemo(@PagerParam(name=PagerParam.SORT ) String sortKey,
@PagerParam(name=PagerParam.DESC,defaultvalue="true") boolean desc,
@PagerParam(name=PagerParam.OFFSET) long offset,
@PagerParam(name=PagerParam.PAGE_SIZE,defaultvalue="2") int pagesize,
@RequestParam(name="TABLE_NAME") String tablename

)
{
String sql = "select * from tableinfo";
boolean usecondition = tablename != null && !tablename.equals("");
if(usecondition)
sql += " where TABLE_NAME like ?";

ModelAndView view = new ModelAndView("/pager/pagerdemo");
try {
ListInfo datas = null;
if(usecondition)
{
datas = SQLExecutor.queryListInfo(TableInfo.class, sql, offset, pagesize, "%" + tablename + "%");
}
else
{
datas = SQLExecutor.queryListInfo(TableInfo.class, sql, offset, pagesize);
}
view.addObject("pagedata", datas);

// datas.setMaxPageItems(pagesize);


} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


return view;
}

/**
* http://localhost:8080/bboss-mvc/pager/pagerdemo.html
* @param sortKey
* @param desc
* @param offset
* @param pagesize
* @return
*/
public ModelAndView pagerdemo(@PagerParam(name=PagerParam.SORT ) String sortKey,
@PagerParam(name=PagerParam.DESC,defaultvalue="true") boolean desc,
@PagerParam(name=PagerParam.OFFSET) long offset,
@PagerParam(name=PagerParam.PAGE_SIZE,defaultvalue="2") int pagesize,
@RequestParam(name="TABLE_NAME") String tablename,
PageContext context,
ModelMap model
)
{
String sql = "select * from tableinfo";
boolean usecondition = tablename != null && !tablename.equals("");
if(usecondition)
sql += " where TABLE_NAME like ?";
ListInfo datas = new ListInfo();
PreparedDBUtil db = new PreparedDBUtil();
try {
db.preparedSelect(sql,offset,pagesize);
if(usecondition)
db.setString(1, "%" + tablename + "%");
List<TableInfo> tables = db.executePreparedForList(TableInfo.class);

datas.setTotalSize(db.getTotalSize());//设置总记录数
datas.setDatas(tables);//设置当页数据
// datas.setMaxPageItems(pagesize);


} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

ModelAndView view = new ModelAndView("/pager/pagerdemo","pagedata", datas);
return view;
}

public void testcn(HttpServletResponse response)
{
try {
response.setContentType("text/html; charset=GBK");
response.getWriter().print("中文");

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}


3.编写jsp页面:

<%@ page contentType="text/html; charset=GBK" language="java" %>
<%@ taglib uri="/WEB-INF/pager-taglib.tld" prefix="pg"%>
<%@ page import="org.frameworkset.web.servlet.support.RequestContext" %>

<!--
测试在通过控制器获取分页列表数据,并且提供查询功能
-->
<html>
<head>
<title>测试在通过控制器获取分页列表数据,并且提供查询功能</title>
</head>
<body>
<table>
<tr class="cms_report_tr">
<!--设置分页表头-->
<form action="<%=RequestContext.getPathWithinHandlerMappingPath(request)%>" method="post">
<td style="width:20%">请输入表名:</td>
<td style="width:5%" colspan="100"><input type="text" name="TABLE_NAME" value="<%=request.getParameter("TABLE_NAME") %>"><input type="submit" name="查询" value="查询"></td>
</form>
</tr>


<!--分页显示开始,分页标签初始化-->
<pg:pager scope="request" data="pagedata"
isList="false">
<pg:param name="TABLE_NAME"/>
<tr class="cms_report_tr">
<!--设置分页表头-->

<td width="2%" align=center style="width:5%">
<input class="checkbox"
type="checkBox" hidefocus=true
name="checkBoxAll"
onClick="checkAll('checkBoxAll','ID')">
</td>
<td width="8%">
TABLE_NAME </td>
<td width="8%">
TABLE_ID_GENERATOR </td>
<td width="8%">
TABLE_ID_TYPE </td>

</tr>

<pg:notify>
<tr class="cms_report_tr">


<td width="2%" align=center style="width:5%">
没有数据
</td>
</tr>
</pg:notify>

<pg:list >

<tr class="cms_report_tr">


<td width="2%" align=center style="width:5%">
<input class="checkbox" hideFocus onClick="checkOne('checkBoxAll','ID')"
type="checkbox" name="ID"
value="<pg:cell colName="TABLE_NAME" defaultValue=""/>">
<img border="0" src="${pageContext.request.contextPath}<pg:theme code="exclamation.gif"/>"
alt="<pg:message code="probe.jsp.datasources.list.misconfigured.alt"/>"/>
</td>
<td width="8%">
<pg:cell colName="TABLE_NAME" defaultValue=""/>
<pg:message var="messagecode" code="probe.jsp.wrongparams"/>
${messagecode}
</td>


<td width="8%">
<pg:cell colName="TABLE_ID_GENERATOR" defaultValue=""/>
<pg:message var="messagecode" code="probe.jsp.wrongparams"/>
${messagecode}
</td>
<td width="8%">
<pg:cell colName="TABLE_ID_TYPE" defaultValue=""/>
<pg:message var="messagecode" code="probe.jsp.wrongparams"/>
${messagecode}
</td>
</tr>
</pg:list>


<tr><pg:index/></tr>
</pg:pager>


</table>
</body>
</html>


到此整个分页的所有代码就做好了,实际效果可以自己下载demo应用操作体验一下,如果demo已经部署好的话,可以在浏览器中输入以下地址看分页的效果:
[url]http://localhost:8080/bboss-mvc/pager/pagerdemo.html[/url]
如果要开始动手做自己的例子可以参考文档:
《搭建自己的bbossmvc eclipse开发工程,编写第一个实例》
[url]http://yin-bp.iteye.com/blog/1026261[/url]