struts+hibernate结构的分页组件(一) 广东精鹰软件工作室(刘正仁)

来源:互联网 发布:程序员未来前景如何 编辑:程序博客网 时间:2024/05/04 21:21

我贴一下源代码吧.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
   
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
 
</web-app>

 

struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>

 
  <action-mappings>
     <action path="/pageTest" type="com.gdcn.frame.TestAction">
      <forward name="page111" path="/bb.jsp" />
    </action>
  </action-mappings>
  <!-- 定义本模块的预处理器-->
  <controller contentType="text/html;charset=utf-8" locale="true" processorClass="com.gdcn.frame.MainRequestProcessor" />
  <!-- 定义本模块要使用的资源文件,在国际化问题是由为有用-->
  <message-resources parameter="com.gdcn.frame.frame" />
</struts-config>

public.js (只用到了一部分)


function next_focus(text)
{
 if(window.event.keyCode ==13)
 {
  window.event.keyCode=9;
 }
}


function mouseovertd (o)
{
 o.style.color='#ffffff';
 o.style.backgroundColor='#B3B3B3';

}
function mouseouttd (o)
{
 o.style.color='#000000';
 o.style.backgroundColor='';

}


function goPage(flag,currPage,formId,formAction,formTarget,formMethod,pageNumId)
{
  var formObj=document.all(formId)
   formObj.target=formTarget;
 formObj.method=formMethod;
 if(flag=='go')
 {
  var obj=document.all(pageNumId)
   if(isNaN(obj.value))
     {
      
         obj.select();
         return;
     }
  else
  {
   currPage=obj.value
  }
 }

 pageMethod="pageMethod="+flag+"&currentPage="+currPage;
 formAction=formAction+"?"+pageMethod;
 formObj.action=formAction;
 
 formObj.submit();
}
function submitForm(formId)
{
  editModel_fireeagle=false
  var objForm =document.all(formId);
   if(Validator.Validate(objForm,2))
   {
    top.bottom.document.all("process").innerHTML="<img name='pro' src='"+baseURL+"/images/public/process.gif' border='0'>"
    objForm.submit();
   }
}

function submitFormQuery(formId)
{

  var objForm =document.all(formId);
  objForm.is_QUERY.value="YES"
  top.bottom.document.all("process").innerHTML="<img name='pro' src='"+baseURL+"/images/public/process.gif' border='0'>"
   objForm.submit();

}


function buttomOnClick(url,target)
{
   top.bottom.document.all("process").innerHTML="<img name='pro' src='"+baseURL+"/images/public/process.gif' border='0'>"
if(target=='parent')
   {
    parent.location.href=url
   }else if(target=='self')
   {
      location.href=url
   }
}

function changeEditModel()
{
  editModel_fireeagle=true
}

function isClose()
{
if(editModel_fireeagle)
  {
    top.bottom.document.all("process").innerHTML="<img name='pro' src='"+baseURL+"/images/public/prosessEnd.gif' border='0'>"
  return exitPro
  }
}


//<input type=text name=test value="" onKeypress="JHshNumberText()">
function JHshNumberText()
{
  if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57))
  || (window.event.keyCode == 13) || (window.event.keyCode == 46)
  || (window.event.keyCode == 45)))
  {
    window.event.keyCode = 0 ;
  }
}

document.onkeydown = openHelp
function openHelp()
{
 if(window.event.keyCode==113)
        {
          if(top.main.document.title.indexOf("HELP")>=0)
          {
            showModalDialog(baseURL+"/frame/help/"+top.main.document.title);
          }
        }

}

 

DispartPage.java  (taglib类)

package com.gdcn.frame;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;

import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager;

public class DispartPage extends BodyTagSupport{
  private String formId;   //表单id
  private String formAction;//处理表单的action
  private String formTarget="_self";//表单出现的窗口,默认为自己窗口里
  private String formMethod="post";//提交表单的方法,默认为post
  private String pageNumId;       //用户输入的页面数控件的id
  private int cols;               //这个标签要放入table中,他生成一个tr,但里面只有一个td,
  //cols表示这个td要占的列
  //private Object pagerObject = null; //页面对象
  /*
  public Object getPagerObject() {
         return pagerObject;
     }

 


     public void setPagerObject(Object value) throws JspException {
         this.pagerObject = ExpressionEvaluatorManager.evaluate("pagerObject",
                 value.toString(), Object.class, this, pageContext);
     }
     */
 public String getFormAction() {
  return formAction;
 }
 public void setFormAction(String formAction) {
  this.formAction = formAction;
 }
 public String getFormId() {
  return formId;
 }
 public void setFormId(String formId) {
  this.formId = formId;
 }
 public String getFormMethod() {
  return formMethod;
 }
 public void setFormMethod(String formMethod) {
  this.formMethod = formMethod;
 }
 public String getFormTarget() {
  return formTarget;
 }
 public void setFormTarget(String formTarget) {
  this.formTarget = formTarget;
 }
 public String getPageNumId() {
  return pageNumId;
 }
 public void setPageNumId(String pageNumId) {
  this.pageNumId = pageNumId;
 }

   public int doStartTag() {

         return EVAL_BODY_INCLUDE;
     }

   public int doEndTag() throws JspException {
    //Pager pager = (Pager)this.getPagerObject();
    Pager pager = (Pager)pageContext.getRequest().getAttribute("pager");
    JspWriter out = pageContext.getOut();
          StringBuffer buf = new StringBuffer();
          buf.append("<tr  class='ListTableRow' >");
          buf.append("<td colspan='"+cols+"' >");
          String disabled="";
         if(pager.getTotalPages()==1||pager.getCurrentPage()==1)
             disabled=" disabled='true'";
          buf.append("<input type='button' name='Submit' value='第一页'"+disabled+" class='Button3'  onClick=goPage('first',"+pager.getCurrentPage()+",'"+formId+"','"+formAction+"','"+formTarget+"','"+formMethod+"','"+pageNumId+"')>");
           disabled=" disabled='true' ";
          if(pager.getTotalPages()>1&&pager.getCurrentPage()!=1)
             disabled="";
          buf.append("<input type='button' name='Submit' value='上一页'"+disabled+" class='Button3'  onClick=goPage('previous',"+pager.getCurrentPage()+",'"+formId+"','"+formAction+"','"+formTarget+"','"+formMethod+"','"+pageNumId+"')>");
            disabled=" disabled='true'";
          if(pager.getCurrentPage()<pager.getTotalPages())
               disabled="";
          buf.append("<input type='button' name='Submit' value='下一页'" +disabled+"class='Button3'  onClick=goPage('next',"+pager.getCurrentPage()+",'"+formId+"','"+formAction+"','"+formTarget+"','"+formMethod+"','"+pageNumId+"')>");
           disabled=" disabled='true'";
          if(pager.getCurrentPage()!=pager.getTotalPages()&&pager.getTotalPages()!=1)
               disabled="";
          buf.append("<input type='button' name='Submit' value='最后一页'" +disabled+ " class='Button3'  onClick=goPage('last',"+pager.getCurrentPage()+",'"+formId+"','"+formAction+"','"+formTarget+"','"+formMethod+"','"+pageNumId+"')>");
          buf.append("共<font color='#0000FF'>"+pager.getTotalRows()+"</font>条记录,每页<font color='#0000FF'>"+pager.getPageSize()+"</font>条,分为<font color='#0000FF'>"+pager.getTotalPages()+"</font>页,到");
           disabled=" disabled='true'";
          if(pager.getTotalPages()!=1)
               disabled="";
          buf.append("<input type='text' name='"+pageNumId+"' "+disabled+" size='4' id='"+pageNumId+"' value='"+pager.getCurrentPage()+"' class='formStyleall'>页");
           disabled=" disabled='true'";
           if(pager.getTotalPages()!=1)
               disabled="";
          buf.append("<input type='button' name='Submit' value='跳转'"+disabled+" class='Button3'  onClick=goPage('go',"+pager.getCurrentPage()+",'"+formId+"','"+formAction+"','"+formTarget+"','"+formMethod+"','"+pageNumId+"')>");
          buf.append("</td>");
          buf.append("</tr>");
          try {
                              out.println(buf.toString());
                      } catch (IOException e) {
                              e.printStackTrace();
                      }

      return EVAL_PAGE;
     }

   public void release() {
         super.release();

     }

 public int getCols() {
  return cols;
 }
 public void setCols(int cols) {
  this.cols = cols;
 }


}

gdcn.tld 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE taglib
  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
  "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
  <tlibversion>1.0</tlibversion>
  <jspversion>1.1</jspversion>
  <shortname>FireEagle Application Tag Library</shortname>
  <uri>http://</uri>
  <info>广东精鹰软件工作室自定义标签库 author:刘正仁</info>
  <tag>
    <name>dispartPage</name>
    <tagclass>com.gdcn.frame.DispartPage</tagclass>
    <bodycontent>empty</bodycontent>
    <info>分页标签</info>
   
     <attribute>
      <name>formId</name>
      <required>true</required>
      <rtexprvalue>false</rtexprvalue>
    </attribute>

    <attribute>
      <name>formAction</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>

    <attribute>
      <name>formTarget</name>
      <required>false</required>
      <rtexprvalue>false</rtexprvalue>
    </attribute>

     <attribute>
      <name>formMethod</name>
      <required>false</required>
      <rtexprvalue>false</rtexprvalue>
    </attribute>

    <attribute>
      <name>pageNumId</name>
      <required>true</required>
      <rtexprvalue>false</rtexprvalue>
    </attribute>

      <attribute>
      <name>cols</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
 
</taglib>


原创粉丝点击