Acerca del algoritmo de paginación de Java, ¡urgente!
Utilice la clase de paginación y llámela directamente. El código es el siguiente:
paquete com.godwin.news.util;
importar java.io. UnsupportedEncodingException;
importar java.net.URLDecoder;
importar java.util.ArrayList;
/**
* Clase de paginación , utilizado para la paginación cerrada muestra información
*
* @author javabs
*
*/
public class Buscapersonas {
// Página actual
private int currentPage;
// Número total de páginas
private int totalPage;
//Número total de registros
private int totalRecord;
//Número de registros por página
private int pageSize;
// ¿Hay una página siguiente?
private int hasNext;
claves privadas de ArrayList;
valores privados de ArrayList;
// Cadena de consulta
cadena privada queryString;
// Página de inicio
Cadena privada firstLink;
// Página anterior
cadena privada enlace anterior;
// Página siguiente
Cadena privada siguienteEnlace;
// Última página
cadena privada último enlace ;
// enlace
cadena privada paraScriptLink;
buscapersonas público (int tamaño de página, cadena cadena de consulta) {
claves = nueva ArrayList ();
valores = nueva ArrayList();
setQueryString(queryString);
setPageSize(pageSize);
}
public String getForScriptLink() {
if (keys.contains("toPage"))
removeKey("toPage" );
String tmp = getQueryString();
if (tmp.length() == 0)
return "?";
else
return "?" + tmp + "&";
}
public int getCurrentPage() {
return página actual;
}
public void setCurrentPage(String toPage) {
int tmpage = 1;
>
intente {
tmpage = Integer.parseInt(toPage);
} catch (NumberFormatException e) {
tmpage = 1;
}
si (tmpage < 1)
tmpage = 1;
si no (tmpage > getTotalPage())
tmpage = getTotalPage();
currentPage = tmpage;
}
public String getFirstLink() {
return getQueryStr( 1);
}
public int getHasNext() {
int i = 1;
if (getCurrentPage() >= getTotalPage())
i = 0;
return i;
}
cadena pública getLastLink() {
return getQueryStr(getTotalPage());
}
public String getNextLink() {
return getQueryStr(currentPage == totalPage ? currentPage : ( página actual + 1));
}
public int getPageSize() {
return tamaño de página;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public String getPreviousLink() {
return getQueryStr(currentPage == 1 ? currentPage : currentPage - 1);
}
public void setPreviousLink(String anteriorLink) {
this.previousLink = enlace anterior;
}
public String getQueryString() {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < claves.tamaño(); i++) {
Clave de cadena = (Cadena) claves.get(i);
Valor de cadena = (Cadena) valores.get( i);
sb.append("&");
sb.append(clave);
sb.append("=");
sb.append(valor);
}
retorno
sb.delete(0, 1).toString();
}
public void setQueryString(String queryString) {
if (queryString != null) {
String s[] = queryString.split("&");
for (int i = 0; i < s.length; i++) {
Cadena s1[] = s[i].split("=");
if (s1.length == 2) {
claves.add(s1[0 ]);
valores.add(s1[1]);
} más {
claves.add(s1[0]);
valores.add("");
}
}
}
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage() {
if (totalRecord % tamaño de página == 0) {
página total = registro total / tamaño de página;
página total = página total == 0 1: página total;
}
else
página total = registro total / tamaño de página + 1;
}
public int getTotalRecord() {
return registro total; p> p>
}
public void setTotalRecord(int totalRecord) {
this.totalRecord = totalRecord;
setTotalPage();
}
public String[] getQueryParameterValues(String key) {
return getQueryParameterValues(key, "UTF-8");
}
public String[] getQueryParameterValues(String key, String decode) {
ArrayList ret = new ArrayList();
for (int i = 0; i < claves.size(); i++)
if (((String)keys.get(i)).equals(key))
prueba {
ret.add(URLDecoder.decode((String) valores.get(i), decodificar));
} catch (UnsupportedEncodingException e) {
ret.add(
(Cadena) valores.get(i));
}
if (ret.size() == 0)
return null;
String strArr[] = new String[ret.size()];
for (int i = 0; i < ret.size(); i++)
strArr[i] = (String) ret.get(i);
return strArr;
}
public String getQueryParameter(String key) { p>
return getQueryParameter(clave, "UTF-8");
}
public String getQueryParameter(clave de cadena, decodificación de cadena) {
Valor de cadena = "";
if (key != "toPage") {
prueba {
value = URLDecoder.decode(getValue(key), decodificar);
} catch (UnsupportedEncodingException e) {
valor = getValue(clave);
}
} más {
int tmpage = 1;
prueba {
valor = getValue(clave);
tmpage = Integer.parseInt(valor);
} catch (NumberFormatException e) {
tmpage = 1;
} catch (NullPointerException e1) {
tmpage = 1;
}
si (tmpage < 1)
tmpage = 1;
si no (tmpage > getTotalPage()) p>
tmpage = getTotalPage();
valor = (new StringBuffer(String.valueOf(tmpage))).toString();
}
valor de retorno;
}
public void setQueryParameter(Clave de cadena, valor de cadena) {
if (key.equals("toPage"))
eliminarClave(clave);
claves.add(clave);
valores.add(valor);
}
public String getQueryStr(int toPage) {
setQueryParameter("toPage", (new StringBuffer(String.valueOf(toPage))).t
oString());
return "?" + getQueryString();
}
cadena privada getValue(clave de cadena) {
String ret = "";
for (int i = 0; i < claves.size(); i++) {
if (!((String) claves.get( i)).equals(key))
continuar;
ret = (String) valores.get(i);
romper;
}
return ret;
}
private void removeKey (clave de cadena) {
for (int i = 0 ; i < claves.tamaño(); i++) {
si (!((String) claves.get(i)).equals(clave))
continuar; p> p>
teclas.remove(i);
valores.remove(i);
descanso;
}
}
public static void main(String args[]) {
String str = "a=中文aa&b=2&c=3&c=4&c=5";
Página del buscapersonas = new Pager(2, str);
page.setTotalRecord(10);
page.setCurrentPage("1");
Sistema .out.println(page.getFirstLink());
System.out.println(page.getPreviousLink());
System.out.println(page.getNextLink () );
System.out.println(page.getLastLink());
Cadena s = page.getQueryParameter("a");
System.out.println("s: " + s);
}
}