📄 pager.java
字号:
// Decompiled by Jad v1.5.7d. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3)
// Source File Name: Pager.java
package com.intohotel.util;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.ResourceBundle;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
public class Pager
{
public Pager()
{
}
/**
* 生成分页脚本
* @param offset 第几行起
* @param length 总记数
* @param size 每页行数
* @param url
* @param pageContext
* @return
*/
public static String generate(int offset, int length, int size, String url, String pageContext)
{
return generate(offset, length, size, url, null,pageContext);
}
/**
* 生成分页脚本
* @param offset 第几行起
* @param length 总记数
* @param size 每页行数
* @param url
* @param param
* @param pageContext
* @return
*/
@SuppressWarnings("unchecked")
public static String generate(int offset, int length, int size )
{
HttpServletRequest request = ServletActionContext.getRequest();
String url = request.getRequestURL().toString();
String pageContext = request.getContextPath();
List<String>list = new ArrayList<String>();
list.add("fenye");
list.add("pagelength");
list.add("length");
list.add("offset");
StringBuffer sb = new StringBuffer(200);
Enumeration<String> e = request.getParameterNames();
while (e.hasMoreElements()) {
String s = e.nextElement();
if(!list.contains(s)){
String [] ss = request.getParameterValues(s);
for (int i = 0; i < ss.length; i++)
{
sb.append("&").append(s).append("=").append(ss[i]);
}
}
}
sb.append("&fenye=1");
if(length > size)
{
String pref;
if(url.indexOf("?") > -1)
pref = "&";
else
pref = "?";
String header = "";
int pagecount = 0;
if(length % size == 0)
pagecount = length / size;
else
pagecount = length / size + 1;
header = header + "\u5171 " + length + " \u884C\uFF0C" + pagecount + " \u9875 ";
String disParm = '"'+ url + pref + "offset=**" + "&length=" + size + "&pagelength=" + size + sb.toString() + '"';
if(offset > 0)
header = header + " <a href='javascript:goPage(1)'>" + new MessageFormat(prop.getString("pager.header.prev")).format(new String[]{pageContext}) + "</a>\n";
int radius = (MAX_PAGE_INDEX / 2) * size;
int start;
if(offset < radius)
start = 0;
else
if(offset < length - radius)
start = offset - radius;
else
if(length / size - MAX_PAGE_INDEX < 0)
start = 0;
else
if(length % size == 0)
start = (length / size - MAX_PAGE_INDEX) * size;
else
start = ((length / size + 1) - MAX_PAGE_INDEX) * size;
for(int i = start; i < length && i < start + MAX_PAGE_INDEX * size; i += size)
if(i == offset)
header = header + "<b>" + (i / size + 1) + "</b>\n";
else
header = header + " <a href='javascript:goPage(" + (i / size + 1) + ")'>" + (i / size + 1) + "</a>\n";
if(offset < length - size)
header = header + " <a href='javascript:goPage(" + pagecount + ")'>" + new MessageFormat(prop.getString("pager.header.next")).format(new String[]{pageContext}) + "</a>\n";
header = header + "</a> \u8F6C\u7B2C <input type=\"text\" name=\"goPage\" id=\"goPage\" size=\"3\" onkeydown=\"KeyDown(event);\">";
header = header + "<input type=\"text\" name=\"temp\" style=\"display:none\">";
header = header + " \u9875<a href='javascript:goPage()'>"+new MessageFormat(prop.getString("pager.header.go")).format(new String[]{pageContext})+"</a> \n";
header = header + " <input type=hidden name=\"sppageparm\" id=\"sppageparm\" value=" + disParm + ">\n";
header = header + " <input type=hidden name=\"sppagetotal\" id=\"sppagetotal\" value=" + pagecount + ">\n";
header = header + " <input type=hidden name=\"sppagelength\" id=\"sppagelength\" value=" + size + ">\n";
return header;
} else
{
return "";
}
}
public static String generate(int offset, int length, int size, String url, String param,String pageContext)
{
if(param != null && param.length() > 0)
param = "&" + param;
else
param = "";
param = param + "&fenye=1";
if(length > size)
{
String pref;
if(url.indexOf("?") > -1)
pref = "&";
else
pref = "?";
String header = "";
int pagecount = 0;
if(length % size == 0)
pagecount = length / size;
else
pagecount = length / size + 1;
header = header + "\u5171 " + length + " \u884C\uFF0C" + pagecount + " \u9875 ";
String disParm = '"'+ url + pref + "offset=**" + "&length=" + size + "&pagelength=" + size + param + '"';
if(offset > 0)
header = header + " <a href='javascript:goPage(1)'>" + new MessageFormat(prop.getString("pager.header.prev")).format(new String[]{pageContext}) + "</a>\n";
int radius = (MAX_PAGE_INDEX / 2) * size;
int start;
if(offset < radius)
start = 0;
else
if(offset < length - radius)
start = offset - radius;
else
if(length / size - MAX_PAGE_INDEX < 0)
start = 0;
else
if(length % size == 0)
start = (length / size - MAX_PAGE_INDEX) * size;
else
start = ((length / size + 1) - MAX_PAGE_INDEX) * size;
for(int i = start; i < length && i < start + MAX_PAGE_INDEX * size; i += size)
if(i == offset)
header = header + "<b>" + (i / size + 1) + "</b>\n";
else
header = header + " <a href='javascript:goPage(" + (i / size + 1) + ")'>" + (i / size + 1) + "</a>\n";
if(offset < length - size)
header = header + " <a href='javascript:goPage(" + pagecount + ")'>" + new MessageFormat(prop.getString("pager.header.next")).format(new String[]{pageContext}) + "</a>\n";
header = header + "</a> \u8F6C\u7B2C <input type=\"text\" id=\"goPage\" name=\"goPage\" size=\"3\" onkeydown=\"KeyDown(event);\">";
header = header + "<input type=\"text\" name=\"temp\" style=\"display:none\">";
header = header + " \u9875<a href='javascript:goPage()'><img src=\""+pageContext+"/images/go.gif\" width=\"15\" height=\"15\" border=\"0\" align=\"center\"></a> \n";
header = header + " <input type=hidden name=sppageparm id=\"sppageparm\" value=" + disParm + ">\n";
header = header + " <input type=hidden name=sppagetotal id=\"sppagetotal\" value=" + pagecount + ">\n";
header = header + " <input type=hidden name=sppagelength id=\"sppagelength\" value=" + size + ">\n";
return header;
} else
{
return "";
}
}
/**
* jasperReopert专用报表分页脚本
* @param current 当前页
* @param end 最后一页
* @param url
* @param param
* @param pageContext
* @return
*/
public static String generateReport(int current, int end, String url, String param,String pageContext){
if(param != null && param.length() > 0)
param = "&" + param;
else
param = "";
param = param + "&fenye=1";
if(end > current)
{
String pref;
if(url.indexOf("?") > -1)
pref = "&";
else
pref = "?";
String header = "";
header = header + "第 "+(current+1)+" 页 / 共 " + end + " 页 \u9875 ";
String disParm = '"'+ url + pref + "offset=**"+ param + '"';
if(current > 0)
header = header + " <a href='javascript:goReportPage(0)'>" + new MessageFormat(prop.getString("pager.header.prev")).format(new String[]{pageContext}) + "</a>\n";
int start=0;
if(current<=0)
start= 0;
else
start = current-1;
start= start-2;
if(start<0)
start=0;
for(int i = start; i < end && i<= (current+2);i++){
if(i == current)
header = header + "<b>" + (i+1) + "</b>\n";
else
header = header + " <a href='javascript:goReportPage(" + i + ")'>" +(i+1) + "</a>\n";
}
if(end-1 > current)
header = header + " <a href='javascript:goReportPage(" + (end-1) + ")'>" + new MessageFormat(prop.getString("pager.header.next")).format(new String[]{pageContext}) + "</a>\n";
header = header + "</a>";
header = header + " <input type=\"hidden\" name=\"goPage\" id=\"goPage\"><input type=hidden name=\"sppageparm\" id=\"sppageparm\" value=" + disParm + ">\n";
header = header + " <input type=hidden name=\"sppagetotal\" id=\"sppagetotal\" value=" + (end-1) + ">\n";
header = header + " <input type=hidden name=\"sppagelength\" id=\"sppagelength\" value=1>\n";
return header;
} else
{
return "";
}
}
public static String generateOrder(int offset, int length, int size, String url, String condition, String order)
{
//condition = CommFunc.parseCondition(condition);
order = order + "&fenye=1";
if(length > size)
{
String pref;
if(url.indexOf("?") > -1)
pref = "&";
else
pref = "?";
String header = "";
int pagecount = 0;
if(length % size == 0)
pagecount = length / size;
else
pagecount = length / size + 1;
header = header + "\u5171 " + length + " \u884C\uFF0C" + pagecount + " \u9875 ";
if(offset > 0)
header = header + " <a href='javascript:goPage(1)'>" + prop.getString("pager.header.prev") + "</a>\n";
int radius = (MAX_PAGE_INDEX / 2) * size;
String disParm = '"' + url + pref + "pager.offset=**" + "&length=" + size + "&length=" + size + "&condition=" + condition + "&order=" + order + '"';
int start;
if(offset < radius)
start = 0;
else
if(offset < length - radius)
start = offset - radius;
else
if(length / size - MAX_PAGE_INDEX < 0)
start = 0;
else
if(length % size == 0)
start = (length / size - MAX_PAGE_INDEX) * size;
else
start = ((length / size + 1) - MAX_PAGE_INDEX) * size;
for(int i = start; i < length && i < start + MAX_PAGE_INDEX * size; i += size)
if(i == offset)
header = header + "<b>" + (i / size + 1) + "</b>\n";
else
header = header + " <a href='javascript:goPage(" + (i / size + 1) + ")'>" + (i / size + 1) + "</a>\n";
if(offset < length - size)
header = header + " <a href='javascript:goPage(" + pagecount + ")'>" + prop.getString("pager.header.next") + "</a>\n";
header = header + "</a> \u8F6C\u7B2C <input type=\"text\" name=\"goPage\" id=\"goPage\" size=\"3\" onkeydown=\"KeyDown(event);\">";
header = header + "<input type=\"text\" name=\"temp\" style=\"display:none\">";
header = header + " \u9875 <a href='javascript:goPage()'><img src=\"/images/go.gif\" width=\"16\" height=\"16\" border=\"0\" align=\"middle\"></a> \n";
header = header + " <input type=hidden name=\"sppageparm\" id=\"sppageparm\" value=" + disParm + ">\n";
header = header + " <input type=hidden name=\"sppagetotal\" id=\"sppagetotal\" value=" + pagecount + ">\n";
header = header + " <input type=hidden name=\"sppagelength\" id=\"sppagelength\" value=" + size + ">\n";
return header;
} else
{
return "";
}
}
private static ResourceBundle prop;
private static int MAX_PAGE_INDEX = 15;
//private static String HEADER = "Result page";
static
{
prop = ResourceBundle.getBundle("struts");
try
{
//HEADER = prop.getString("pager.header.title");
}
catch(Exception e) { }
try
{
MAX_PAGE_INDEX = Integer.parseInt(prop.getString("pager.max.page.index"));
}
catch(Exception e) { }
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -