⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 使用说明.txt

📁 通用的jsp分页组件
💻 TXT
字号:
                                                 使用指南
1:该组件为jsp页面数据分页通用组件,可用于所有struts或jsp+javabean的页面分页功能

2:该组件使用非常简单,只需设定好各项属性,传入数据Vctor或者Sql语句,直接调用多态的 
getContentHtml方法即可得到分好页的表格的html代码(string),在页面中<%=string%>即可
,之后的各种翻页操作业已封装在该html代码中,用户不必再操心。
   
3:该组件设置步骤 
   a.初始化分页组件实例
     eg:OperatePage operatePage = new OperatePage();
     
   b.设定分页表格数据所属的表单名
     如不设置该属性,组件将自定义一个名为"form1" 的表单名来存放分页表格。
     eg:operatePage.setFormName("formName");
     
   c.设定翻页操作时的跳转页面
     该属性必需设置,否则会报错。组件支持翻页时跳转到jsp页面(一般都是原jsp页面)
     或者某一Action(struts架构)中。
     eg:operatePage.setPageUrl("/jsp/managerAction.do");
     eg:operatePage.setPageUrl("/jsp/testPage.jsp");   
       
   d.设定跳转类型
     组件支持jsp和Action两种跳转类型,两种类型并无大的区别,只是设成Action时
     将在翻页操作时传递一个"flag=OperatePage"的参数以便在用户Action中区分是翻页
     操作。
     operatePage.setForwardType(OperateConst.FOWARD_TYPE_ACTION);或者
     operatePage.setForwardType(OperateConst.FOWARD_TYPE_JSP);
     
   e.设定数据Vctor(如果传sql的话在此步骤设置数据库连接的Connection)
     operatePage.setCon(con);  或者
     operatePage.setDataVector(vecData);
     
   f.设定是否需要单选或者多选列(可不设置,默认为true)
     opeatePage.operatePage.setHasSelectItem(true);
     
   g.设定单选或者多选列类型,元素名及对应的该行数据的主键值(如f步骤中设置为false这步省略)
      //支持checkBox和radioButton两种
     operatePage.setSelectType(OperateConst.SELECT_TYPE_RADIOBUTTON);
      //可不设,默认为selectItem1
     operatePage.setSelectItemName("selectItemName2");
      //序号从1开始,可不设,默认为该行数据的第一列的值
     operatePage.setSelectKeyArray( new int []{1,2,3});
        
   h.设定数据标题列(如e步骤中设置为传sql此步省略)
     operatePage.setContentTitle(new String[]{"col1","col2","col3","col4"}); 
     
   g.前面的设置完成后,直接调以下API即可
   /**
   * @传Vector方式
	 * @param pm_iPageSize  页大小
	 * @param pm_iPageIndex 页码
	 * @param request       SevletRequest
	 * @param response      SevletResponse
	 * @return 数据库分页后的Table HTML(带分页按钮)
	 * @throws OperateException 
	 */
	public String getContentHtml(int pm_iPageSize,int pm_iPageIndex,HttpServletRequest request, HttpServletResponse response) throws OperateException;
  
  /**
   * @传sql方式
	 * @param pm_iPageSize  页大小
	 * @param pm_iPageIndex 页码
	 * @param pm_sPageUrl   jsp页面路径
	 * @param pm_sSql       查询的sql
	 * @param request       SevletRequest
	 * @param response      SevletResponse
	 * @return 数据库分页后的Table HTML(带分页按钮)
	 * @throws OperateException 
	 */
	public String getContentHtml(int pm_iPageSize,int pm_iPageIndex,String pm_sSql,HttpServletRequest request, HttpServletResponse response) throws OperateException;
   
  /**
   * @传sql方式
	 * @param pm_iPageSize  页大小
	 * @param pm_iPageIndex 页码
	 * @param pm_sPageUrl   jsp页面路径
	 * @param pm_sSql       查询的sql
	 * @param pm_sDBType    数据库类型,如数据库直接支持数据库端分页,可提高效率
	 * @param request       ServletRequest
	 * @param response      ServletResponse
	 * @return 数据库分页后的Table HTML(带分页按钮)
	 * @throws OperateException 
	 */
	public String getContentHtml(int pm_iPageSize,int pm_iPageIndex,String pm_sSql,String pm_sDBType,HttpServletRequest request, HttpServletResponse response) throws OperateException; 
   
  
4:实例
   上述可能有点抽象,让我们来看两个完整使用实例:
   
   第一种是直接在jsp页面中分页,即翻页操作时跳回原jsp页面中
   我们来看看testPage.jsp的源代码:
<%@ page language="java" contentType="text/html; charset=GB18030"    pageEncoding="GB18030"%>  
<jsp:useBean id="operatePage" class="Action.OperatePage"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title></title>
</head>
<body>
<%
   
   /**********这是获取数据vector的代码***********/
   DbSelect a = new DbSelect();
   Vector  b = a.getManagerContentByMain_Key(1);
  
   
  /*form2是你的jsp页面中的表单名*/ 
  operatePage.setFormName("form2");       
  operatePage.setPageUrl("/jsp/testPage.jsp");
  operatePage.setForwardType(OperateConst.FOWARD_TYPE_JSP); 
  operatePage.setDataVector(b);
  operatePage.setHasSelectItem(true);
  operatePage.setSelectType(OperateConst.SELECT_TYPE_CHECKBOX);
  
  /*selectItemName是单选列的元素名,这样你可以用request.getParamer("selectItemName")来获取选中的值 ,如不设,默认为名字为selectItemName1*/
  operatePage.setSelectItemName("selectItemName");
  
  /*1,2,3表示你用request.getParamer("selectItemName")获取选中行的value为该行第一列,第二列,第三列的值的集合,各列的值以;分隔*/
  operatePage.setSelectKeyArray( new int []{1,2,3});
  
  operatePage.setContentTitle(new String[]{"col1","col2","col3","col4"});
  
  /****15是初始的页大小,0是初始页码,之后翻页跳转时这两个值会被request中的新值自动更新*/
  String c = operatePage.getContentHtml(15,0,request,response);
  
%>
<%=c %>

</script>
</body>
</html>
这是传Vctor方式,如果我们改成传sql的方式,只需做修改如下:

<%
  /**********这是获取数据库连接的代码***********/
  DbConnect a = new DbConnect();
  Connection con = a.getOracleConnection();
  String sql = "select * from safe_control_object";
  
  
  operatePage.setFormName("form2");
  operatePage.setPageUrl("/jsp/testPage.jsp");
  operatePage.setForwardType(OperateConst.FOWARD_TYPE_JSP);
  operatePage.setCon(con);
  
  operatePage.setHasSelectItem(true);
  operatePage.setSelectType(OperateConst.SELECT_TYPE_CHECKBOX);
  operatePage.setSelectItemName("selectItemName2");
  operatePage.setSelectKeyArray( new int []{1,2,3});
  
  /* OperateConst.DBTYPE_ORACLE是数据库类型,该字段可传可不传,传的好处在于如果该类型数据库支持后端分页,则组件会采用后端分页的方式,效率较前端分页要高*/
  String c = operatePage.getContentHtml(15,0,sql,OperateConst.DBTYPE_ORACLE,request,response);
%>

我们再来看看跳转到Action中的情况,这是翻页Action的源码示例
   
   public class ManagerAction extends DispatchAction{
    OperatePage operatePage = new OperatePage();
    /**********这是获取数据vector的代码***********/
    DbSelect a = new DbSelect();
	  Vector  b = a.getManagerContentByMain_Key(1);
	  
	  
	  public ActionForward pageOperate(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
    throws Exception
    {
    	String c = operatePage.getContentHtml(15,0,request,response);
    	HttpSession session = request.getSession();
    	session.setAttribute("testPage",c);
      return mapping.findForward("testPage");
    }
    
    /**初始化的操作**/
    public ActionForward initPageOperate(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
    throws Exception
    {
    	
    	operatePage.setFormName("form2");
    	operatePage.setPageUrl("/jsp/managerAction.do");
    	operatePage.setForwardType(OperateConst.FOWARD_TYPE_ACTION);
    	operatePage.setDataVector(b);
    	operatePage.setHasSelectItem(true);
    	operatePage.setSelectType(OperateConst.SELECT_TYPE_RADIOBUTTON);
    	operatePage.setSelectItemName("selectItemName2");
    	operatePage.setSelectKeyArray( new int []{1,2,3});
    	operatePage.setContentTitle(new String[]{"col1","col2","col3","col4"});
    	
    	String c = operatePage.getContentHtml(15,0,request,response);
    	/*把获得的分页后的html代码放到session中去*/
    	HttpSession session = request.getSession();
    	session.setAttribute("testPage",c);
    	/*testPage是你在struts-config.xml中配置的jsp页面的跳转forward**/
      return mapping.findForward("testPage");
    }
    
}
jps示例页面如下:
<%@ page language="java" contentType="text/html; charset=GB18030"    pageEncoding="GB18030"%>  
<jsp:useBean id="operatePage" class="Action.OperatePage"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title></title>
</head>
<body>
<%
String c = (String)session.getAttribute("testPage");

%>
<%=c %>
//flag=initPageOperate对应Action中初始化的操作
<a href="/jsp/managerAction.do?flag=initPageOperate">测试Action端分页</a>

这是传Vctor的方式,传sql和之前跳转到jsp中的类似,这里就不重复了

OK!这就是最常见的传sql和传Vector,及在原jsp页面跳转或者在Action中跳转的数据库分页组件操作,每种不过十几行代码即可搞定!


5:如果有什么不清楚的地方,请发email:qingyuan18@126.com,或者msn:tangqingyuan@chinamobilesz.com,
有做的不好的地方,请不吝赐教!



   

                                       

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -