HttpServletRequest 公共处理传值参数基类

package com.sinocarbon.base.util;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.jfree.util.Log;

import java.lang.reflect.Field;
import java.net.URLDecoder;

public class ParamUtils {

	/**
	   * 从一个参数中得到整数,如果没有值,返回缺省值
	   * @param request
	   * @param name
	   * @defaultvalue 缺省值
	   * @return
	   */
	  static public Integer getInteger(HttpServletRequest request, String name,
	      Integer defaultvalue) {
	    String p = request.getParameter(name);
	    if (StringUtils.isNotEmpty(p) && StringUtils.isNumeric(p))
	      return Integer.valueOf(p);
	    else
	      return defaultvalue;
	  }

	  /**
	   * 从一个参数中得到整数,如果没有值,返回缺省值0
	   * @param request
	   * @param name
	   * @return
	   */
	  static public Integer getInteger(HttpServletRequest request, String name) {
	    String p = request.getParameter(name);
	    if (StringUtils.isNotEmpty(p) && StringUtils.isNumeric(p))
	      return Integer.valueOf(p);
	    else
	      return Integer.valueOf(0);
	  }

	  public static int getInt(HttpServletRequest request, String name, int value) {
	    String p = request.getParameter(name);
	    int val = value;
	    if (StringUtils.isNotEmpty(p) && StringUtils.isNumeric(p)) {
	      val = Integer.parseInt(p);
	    }
	    return val;
	  }
	  
	  public static int getInt(HttpServletRequest request, String name) {
	    return ParamUtils.getInt(request, name, 0);
	  }
	  
	  /**
	   * 从一个参数中得到字符串
	   * @param request
	   * @param name
	   * @defaultvalue 
	   * @return
	   */
	  static public String getString(HttpServletRequest request, String name,
	      String defaultvalue) {
	    String value = request.getParameter(name);
	    if (value == null || "".equals(value.trim()))
	      return defaultvalue;
	    else
	      return value.trim();
	  }

	  /**
	   * 从一个参数中得到字符串,缺省=""
	   * @param request
	   * @param name
	   * @return
	   */
	  static public String getString(HttpServletRequest request, String name) {
	    String value = request.getParameter(name);
	    if (value == null || "null".equals(value))
	      return "";
	    else
	      return value.trim();
	  }
	  
	/**
	 * 从一个参数中得到中文字符串,缺省=""
	 * gm   2011-4-27
	 * @param request
	 * @param name
	 * @return
	 */
	  static public String getGBKString(HttpServletRequest request, String name) {
		  try{
			  String value = request.getParameter(name);
			  if (value == null || "null".equals(value))
			      return "";
			    else
			      value=URLDecoder.decode(request.getParameter(name),"utf-8");
			      return value.trim();
			   }
			   catch(UnsupportedEncodingException e)
			   {
			    return "编码转换错误:"+e.getMessage();
			   }
			  
		  }
	  /**
	   * 从getParameterMa中得到String
	   * gm 2011-4-29
	   * @param map
	   * @param name
	   * @return
	   */
	  static public String getString(Map map,String name){
		  String newValue="";
		  String[] value=(String[])map.get(name);
		  if(value==null || "null".equals(value[0]))
			  return "";
		  else {
			  newValue=String.valueOf(value[0]);
		}
		  return newValue;
	  }
	  
	  /**
	   * 从getParameterMa中得到中文String
	   * gm 2011-4-29
	   * @param map
	   * @param name
	   * @return
	   */
	  static public String getGBKString(Map map,String name){
		  try{
			  String newValue="";  //将数组对象转为String
			  String GBKValue="";  //将String转为中文
			  String[] value=(String[])map.get(name);
			  if (value == null || "null".equals(value[0]))
			      return "";
			    else
			      newValue=String.valueOf(value[0]);
			      GBKValue=URLDecoder.decode(newValue,"utf-8");
			      return GBKValue.trim();
			   }
			   catch(UnsupportedEncodingException e)
			   {
			    return "编码转换错误:"+e.getMessage();
			   }
	  }
	  
	  /**
	   * 从request得到中文 
	   * @param request
	   * @param name
	   * @param code
	   * @return
	   */
	  public static String getChinaStringByCODE(HttpServletRequest request, String name,String codeType){
		  String value = request.getParameter(name);
		  String returnValue = "";
		  if("null".equalsIgnoreCase(value) || null==value){
			  return returnValue;
		  }else{
			  byte[] bytes;
			try {
				bytes = value.getBytes("iso-8859-1");
				returnValue = new String(bytes,codeType);
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
				Log.debug("转换中文编码出错"+e.getMessage());
			}
		  }
		  return returnValue ;
	  }
	  
	  /**
	   * 转换为utf-8编码方式中文
	   * @param request
	   * @param name
	   * @return
	   */
	  public static String getChinaStringByUTF8(HttpServletRequest request, String name){
		  return getChinaStringByCODE(request, name, "utf-8");
	  }
	  
	  /**
	   * 转换为gb2312编码方式中文
	   * @param request
	   * @param name
	   * @return
	   */
	  public static String getChinaStringByGB2312(HttpServletRequest request, String name){
		  return getChinaStringByCODE(request, name, "gb2312");
	  }
	  /**
		 * 这么做是考虑Object字段多,Map字段可能不匹配的情况,容错
		 * @param map
		 * @param obj
		 * @param ridSign 实体类有个set集合对象
		 * @throws Exception
		 */
		public static Object praseMap(Map<String,String> map,Object obj,String ridSign)throws Exception{
			for(Map.Entry<String, String> entry : map.entrySet()){
				String key = entry.getKey();
				if(null!=ridSign){
					int ridSignIdex = key.indexOf(ridSign);
					key = key.substring(0, ridSignIdex);
				}
				String value = entry.getValue();
				//获取Object class下 all field
				Field [] fieldArray = obj.getClass().getDeclaredFields();
				for (int i = 0; i < fieldArray.length; i++) {
					if(key.equals(fieldArray[i].getName())){
						Field field = fieldArray[i];
						//判断field字段type
						Class fieldType = field.getType();
						field.setAccessible(true);
						if(fieldType.equals(int.class)){
							field.setInt(obj, Integer.parseInt(value));
						}else if(fieldType.equals(String.class)){
							field.set(obj,value);
						}else if(fieldType.equals(Double.class)){
							field.setDouble(obj, Double.parseDouble(value));
						}else if(fieldType.equals(Float.class)){
							field.setDouble(obj, Float.parseFloat(value));
						}else if(fieldType.equals(Date.class)){
							SimpleDateFormat sdfFormat = new SimpleDateFormat ("yyyy-MM-dd"); 
							Date iTdate = sdfFormat.parse(value);
							field.set(obj, iTdate);
						}else if(fieldType.equals(Integer.class)){
							field.set(obj, Integer.parseInt(value));
						}else if(fieldType.equals(float.class)){
							field.set(obj, Float.parseFloat(value));
						}else{
							field.set(obj,value);
						}
						break;
					}
				}
			}
			return obj;
		}
		
		public static Object praseMap(Map<String,String> map,Object obj)throws Exception{
			return praseMap(map, obj, null);
		}
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值