You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lvyuou/CollectList.java

99 lines
3.2 KiB

package com.spring.util;
import net.jntoo.annotation.QueryCollect;
import net.jntoo.db.Collect;
import util.Request;
import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
/**
* 根据库jntoo-query.jar要求写代码
*/
@QueryCollect
public class CollectList extends Collect {
protected HttpServletRequest request;
public CollectList(Long count, Integer pagesize) {
super(count , pagesize);
}
public CollectList(Long count, Integer pagesize, Integer page)
{
super(count, pagesize, page);
}
/**
* 获取url 规则
* @return
*/
@Override
protected String getRequestUrlPath() {
request = Request.getRequest();
String queryString = request.getQueryString();
if(queryString == null){
queryString = "";
}
StringBuffer buffer = new StringBuffer(queryString.length()+16);
String requestURI = request.getRequestURI();
buffer.append(requestURI).append("?");
Map<String,String[]> param = request.getParameterMap();
String name = "";
String value = "";
boolean isSearchPage = false;
int page = -1;
for (Map.Entry<String, String[]> entry : param.entrySet()) {
try{
name = entry.getKey();
String[] values = entry.getValue();
if(name.equals("page")){
page = Integer.valueOf(values[0]).intValue();
buffer.append(name).append("=").append("{page}").append("&");
isSearchPage = true;
} else if (null == values) {
buffer.append(name).append("=").append("&");
} else if (values.length>1) {
for (int i = 0; i < values.length; i++) { //用于请求参数中有多个相同名称
value = URLEncoder.encode(values[i] , "UTF-8");
buffer.append(name).append("=").append(value).append("&");
}
//value = value.substring(0, value.length() - 1);
} else {
value = URLEncoder.encode(values[0] , "UTF-8");
buffer.append(name).append("=").append(value).append("&");//用于请求参数中请求参数名唯一
}
}catch (UnsupportedEncodingException e){
e.printStackTrace();
}
}
if(this.page == -1){
this.page = page;
}
this.page = Math.max(this.page , 1);
if(!isSearchPage){
buffer.append("page={page}&");
}
String result = buffer.toString();
return result.substring(0 , result.length()-1);
}
/**
* 分页渲染完成后处理
*/
@Override
protected void readerReady() {
String info = getInfo();
HashMap map = new HashMap();
map.put("info" , info);
request.setAttribute("page" , map);
request.setAttribute("totalCount" , count);
}
}