`

request公共基类

阅读更多
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);
		}
}

 

分享到:
评论

相关推荐

    Android-对Retrofit的简单封装设置缓存公共参数

    对于一些通用的请求参数,如token、用户ID等,我们可以创建一个基类RequestInterceptor,然后在每个接口方法前进行拦截添加: ```java public class RequestInterceptor implements Interceptor { @Override ...

    C#系统设计之公共类库

    22. **XML处理基类XMLHelper.cs**:处理XML数据的读取、删除、添加和修改,是XML数据操作的基础。 23. **数据出库处理类GetSafeData.cs**:专门处理数据库数据出库时可能出现的异常,提高了程序的健壮性。 此外,...

    Java实训教程 Java软件开发实战 Java开发框架介绍 struts2_表单校验失败跳input视图问题共13页.pptx

    - 创建一个公共基类`BaseAction`继承自`ActionSupport`。 - 在基类中实现必要的接口,并封装常用的操作。 - 示例代码: ```java public class BaseAction extends ActionSupport implements ...

    最牛.Net公共类库,.net 开发类库Cmn

    Request Request操作类 Safe 安全操作类 Session Session操作类 Str 字符串操作类 Valid 数据类型验证类 WebConfig Web.Config配置类 ---------------- 公历/农历类 日期格式处理类 文件实用类 上传类 图片...

    NET公共类库[转发]

    系统设计之公共类库 ?Data Class Name File Function SQL访问基础类 SqlHelper.cs 执行带参数SQL,非带参数SQL,存储过程等语句 Access操作辅助类 JetAccess.cs Access的新建,压缩,加密等数据库文件操作 Oledb操作辅助...

    C# EF Mvc log4net自定义扩展字段,自定义属性

    在MVC控制器中,通常会创建一个公共基类,该基类包含一个用于记录日志的静态对象。例如,在`BaseController`中,我们创建了一个名为`logs`的`log4net.Ext.IExtLog`类型的实例,这个对象负责处理日志记录。然后,子...

    asp.net开发中常见公共捕获异常方式总结(附源码)

    这种方式涉及到在页面的公共基类中重写OnError事件。通常,开发者会创建一个自定义的BasePage类,并在该类的OnError事件中添加异常处理逻辑。任何继承自BasePage类的页面在出现异常时,都会执行这个重写的OnError...

    java abstract class interface之间的区别介绍

    例如,一个抽象的基类可以包含所有公共的行为,如权限验证、日志记录和异常处理,而具体的业务逻辑则由子类实现。这种方式可以极大地简化子类的设计,使其专注于核心业务逻辑。 ### 示例 假设我们需要创建一系列...

    ASP.NET程序设计期末分章练习,涵盖选择填判断等多种题型

    13. 列举 ASP.NET 中的七个内置对象:Request、Response、Server、Session、Application、Context、Cache。 14. URL 的中文意思是指统一资源定位符。 15. DTD 最大的作用就是验证 XML 文件的正确性。 五、框架结构 ...

    Csharp设计模式

    在C#中,通常通过静态私有构造函数和一个公共静态方法来实现。例如: ```csharp public sealed class Singleton { private static readonly Singleton instance = new Singleton(); private Singleton() {} ...

    Java面试题目汇总英文Java面试题(核心知识).doc

    抽象类可以包含抽象方法和非抽象方法,用来作为多个子类的公共基类。 4. **文件读写**:Java中的`FileReader`、`FileWriter`、`BufferedReader`、`BufferedWriter`等类提供了文件读写的接口。 5. **串行化...

    ASP.NET测试题.docx

    * .NET Framework 从低到高由公共语言运行库、基类库、类库和应用程序开发技术四层组成。 七、其他 * URL 的中文意思是指统一资源定位符。 * Server.MapPath() 方法的主要功能是获取文件的绝对路径。 * 通过在 IIS...

    ios-基于NFNetWorking的二次封装.zip

    3. **URL配置**:在基类中定义公共的URL前缀,子类只需传入相对路径,即可构建完整的请求URL。 4. **请求头设置**:统一管理请求头,比如设置Content-Type、Authorization token等。 5. **错误处理**:捕获并处理...

    Struts中等同于DispatchAction类方法

    总结来说,"Struts中等同于DispatchAction类方法"是一种在不直接使用`DispatchAction`基类的情况下,通过前端传递方法名并在后端使用反射调用相应方法的技术,以实现多请求映射到单个Action类的多个方法。...

    页面间参数传递

    2. **URL参数**:通过`&lt;A&gt;`标签的`href`属性传递参数,接收页面通过`Request["param1"]`获取。 3. **Session**:存储在服务器端,适用于用户会话期间的数据共享。发送页面设置`Session("param1") = "1111"`,接收...

    ASP_NET考试试题及答案详析[归类].pdf

    21. **.NET Framework结构**:从底层到高层依次是公共语言运行库、基类库、类库和应用程序开发技术。 22. **运行ASP.NET**:需要安装和配置.NET Framework以及IIS。 23. **访问ASP.NET应用**:通过IIS建立虚拟目录...

    《ASPNET程序设计》期末题库[文].pdf

    21. .NET Framework层次:从底层到高层分别为公共语言运行库、基类库、类库和应用程序开发技术。 22. 运行ASP.NET:需要安装和配置.NET Framework以及IIS。 23. 访问ASP.NET应用:通过在IIS中创建虚拟目录来访问...

    ThinkPHP5控制器从入门到精通.rar

    2. 控制器方法:控制器类中的公共方法代表操作,如上述的`index()`方法。当访问`/index/index`时,会调用`IndexController`的`index`方法。 三、路由与控制器 ThinkPHP5引入了更灵活的路由机制,允许我们自定义URL...

    CORBA基础_C++corba开发_corba_

    CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是用于分布式计算的一种标准,它允许不同系统间的软件对象进行交互,就像它们在同一个进程内一样。在C++环境中进行CORBA开发可以帮助...

    ASPNet复习资料.doc

    21. **.NET Framework层次**:从低到高是公共语言运行库、基类库、类库和应用程序开发技术。 22. **运行ASP.NET**:需要安装和配置.NET Framework以及IIS。 23. **访问ASP.NET应用**:通过在IIS中创建虚拟目录,...

Global site tag (gtag.js) - Google Analytics