package com.zdcf.tool; import java.io.IOException; import java.lang.reflect.Field; import java.math.BigDecimal; import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; import java.text.DecimalFormat; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class WebUtil implements IGlobalsKeys { private static final long serialVersionUID = -5325889677001839303L; public static String PAGE_SAVE_LOCATION; public static String PAGE_SAVING_ACTION_LIST_KEY = "PAGE_SAVING_ACTION_LIST_KEY"; public static String ORDER_STR_SAVING_ACTION_LIST_KEY = "ORDER_STR_SAVING_ACTION_LIST_KEY"; private static Log logger = LogFactory.getLog(WebUtil.class); /** * 加载分页默认配置 */ public static PageVo findPageVo(HttpServletRequest request) { try { Object o = request.getParameter("PAGE_NO_KEY"); if (o != null && (o instanceof String)) { // int recordCount = Integer.parseInt((String) o); String PAGE_RECORDCOUNT_KEY = request.getParameter("PAGE_RECORDCOUNT_KEY"); int recordCount = Integer.parseInt(PAGE_RECORDCOUNT_KEY); return createPageVo(request, recordCount); } else { PageVo pageVo = new PageVo(); pageVo.setRecordCount(0); pageVo.setPageSize(10); pageVo.setCurrentPage(1); pageVo.rePageCount(); return pageVo; } } catch (NumberFormatException e) { logger.error("格式化页码异常",e); } return null; } /** * 创建pagevo对象 * * @param request * @param recordCount * @return */ public static PageVo createPageVo(HttpServletRequest request, int recordCount) { PageVo pageVo = new PageVo(); int pageNo = 0; int pageSize = 10; // 默认10条记录 if (request.getParameter("PAGE_NO_KEY") != null) try { String s = request.getParameter("PAGE_NO_KEY"); pageNo = Integer.parseInt(s); } catch (Exception e) { // getIlog().error("error in createPageVo: ", e); } if (request.getParameter("PAGE_SIZE_KEY") != null) try { String s = request.getParameter("PAGE_SIZE_KEY"); pageSize = Integer.parseInt(s); } catch (Exception e) { // getIlog().error("error in createPageVo: ", e); } pageVo.setRecordCount(recordCount); pageVo.setPageSize(pageSize); pageVo.setCurrentPage(pageNo); return pageVo; } /** * 处理金额显示千分位的问题 * @param moneyValueStr * @return */ public static String parseMoney(String moneyValueStr){ DecimalFormat a = new DecimalFormat(""); Double dd = Double.parseDouble(moneyValueStr); String pattern="' '###,###.##' ';''###,###.##''"; a.applyPattern(pattern); return a.format(dd).trim(); } /** * 改变URL协议,并返回使用默认端口的URL字符串(不包含查询串) * @param url * @return */ public static String changeSchemeWithDefaultPort(String strUrl, String newScheme) { try { URL urlObj = new URL(strUrl); int port = (urlObj.getPort() == urlObj.getDefaultPort()) ? -1 : urlObj.getPort(); urlObj = new URL(newScheme, urlObj.getHost(), port, urlObj.getPath()); return urlObj.toURI().toString(); } catch (MalformedURLException e) { return strUrl; } catch (URISyntaxException e) { return strUrl; } } /** * 若一个URL使用了默认端口,则移除端口号(不包含查询串) * @param strUrl * @return */ public static String removeDefaultPort(String strUrl) { try { URL urlObj = new URL(strUrl); if (urlObj.getPort() == urlObj.getDefaultPort()) { urlObj = new URL(urlObj.getProtocol(), urlObj.getHost(), -1, urlObj.getPath()); } return urlObj.toURI().toString(); } catch (MalformedURLException e) { return strUrl; } catch (URISyntaxException e) { return strUrl; } } public static void writeStr(HttpServletResponse response,String str) throws IOException { response.setContentType("html/text"); response.getWriter().write(str); response.getWriter().flush(); response.getWriter().close(); } }