📄 common.java
字号:
package com.jewel.tag.pagination;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import org.apache.struts.util.*;
/**
* <p>Title: www.entel.com.cn</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: entel</p>
* @author chendesheng
* @version 1.0
*/
public class Common {
private final String config = "com.jewel.tag.pagination.template";
private String hrefABegin = "<a href=\"";
private String hrefAEnd = "\">";
private String hrefEnd = "</a>";
public String First = "首页";
public String Prev = "前页";
public String Next = "后页";
public String Last = "未页";
public int pageLength;
public int offset = 0 ;
public int AllElementCount = 0 ;
public int jumpCount = 10;
private String jumpSplit = " ";
private HttpServletRequest request;
private MessageResources str ;
public Common(HttpServletRequest request){
this.request = request;
try{
if(str == null){
str = MessageResources.getMessageResources(config);
//InputStream is = getClass().getResourceAsStream("template.properties");
hrefABegin = str.getMessage("hrefABegin");
hrefAEnd = str.getMessage("hrefAEnd");
hrefEnd = str.getMessage("hrefEnd");
First = new String(str.getMessage("First").getBytes("ISO8859_1"),"gb2312");
Prev = new String(str.getMessage("Prev").getBytes("ISO8859_1"),"gb2312");
Next = new String(str.getMessage("Next").getBytes("ISO8859_1"),"gb2312");
Last = new String(str.getMessage("Last").getBytes("ISO8859_1"),"gb2312");
jumpCount = Integer.parseInt(str.getMessage("jumpCount"));
jumpSplit = str.getMessage("jumpSplit");
}
String sessionID = request.getSession(true).getId();
String offsetValue = (String)request.getSession(true).getAttribute(sessionID+"offset");
offset = Integer.parseInt(offsetValue);
String pagelen = (String)request.getSession(true).getAttribute(sessionID+"length");
pageLength = Integer.parseInt(pagelen);
String allCount = (String)request.getSession(true).getAttribute(sessionID+"allcount");
AllElementCount = Integer.parseInt(allCount);
}catch(Exception e){
System.out.println("Read Config File Error!!");
offset=0;
pageLength=10;
AllElementCount=0;
}
}
public String generateOffSet(String offset,String page){
int currOffset = this.offset;
int intOffset = Integer.parseInt(offset);
if(intOffset < 0 ){
intOffset = 0;
offset = "0";
}
//计算总页数
int PageCount = 0;
if(AllElementCount % pageLength==0)
PageCount = AllElementCount / pageLength -1;
else
PageCount = AllElementCount / pageLength ;
//计算最后一页
int intLastPage = PageCount * pageLength;
if(intOffset>intLastPage){
intOffset = intLastPage;
if(Integer.parseInt(offset)>intLastPage)
offset = ""+intLastPage;
}
//纠错,如果当前URL中的offset大于intLastPage或小于0时
if(currOffset > intLastPage)
currOffset = intLastPage;
if (currOffset == 0 && (page.equalsIgnoreCase(First) || page.equalsIgnoreCase(Prev))) {
return page;
} else if (currOffset == intLastPage && (page.equalsIgnoreCase(Next) || page.equalsIgnoreCase(Last))) {
return page;
}
String result=hrefABegin;
String requestURI = request.getRequestURL().toString();
String queryString = request.getQueryString();
if(queryString == null){
result = result + requestURI + "?offset=" + offset + hrefAEnd;
}else{
int count =queryString.indexOf("offset");
if(count<0){
if(queryString.indexOf("offset")<0)
result = result + requestURI +"?"+ queryString + "&offset=" + offset + hrefAEnd;
}else{
StringTokenizer st = new StringTokenizer(queryString,"&");
StringBuffer sbf = new StringBuffer();
int tcount = st.countTokens();
for(int i=0;i<tcount;i++){
String tmp = st.nextToken();
if(tmp.indexOf("offset")>=0){
tmp = "offset="+offset;
}
sbf.append(tmp+"&");
}
queryString = sbf.toString();
queryString = queryString.substring(0,queryString.length()-1);
result = result + requestURI + "?" + queryString + hrefAEnd;
}
}
result = result + page + hrefEnd;
return result;
}
public String generateJump(int group,int currpage){
String result = "";
int PageCount = 0;
if(currpage>=offset/pageLength)
currpage -= 1;
if(AllElementCount % pageLength==0)
PageCount = AllElementCount / pageLength;
else
PageCount = AllElementCount / pageLength + 1;
///jumpCount出了问题,没有得到新的值。修改如下:
int tmpJumpCount = jumpCount;
if(tmpJumpCount>PageCount)
tmpJumpCount = PageCount;
if(currpage == PageCount)
group -= 1;
int baseLoop = group*tmpJumpCount;
for(int i=baseLoop;i<jumpCount+baseLoop;i++){
if(i>=PageCount)
break;
String offset ="" + (i*pageLength);
if(currpage == i-1)
result = result +"<b>"+ (i+1)+"</b>"+jumpSplit;
else
result = result + generateOffSet(offset,""+(i+1))+jumpSplit;
}
return result;
}
public String PageInformation(String currentPageNo){
String result="";
int PageCount = 0;
if(AllElementCount % pageLength==0)
PageCount = AllElementCount / pageLength;
else
PageCount = AllElementCount / pageLength + 1;
result = str.getMessage("tags.pageInfo",""+AllElementCount,""+PageCount,currentPageNo);
try{
result = new String(result.getBytes("ISO8859_1"), "gb2312");
}catch(Exception e){}
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -