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); } }
相关推荐
对于一些通用的请求参数,如token、用户ID等,我们可以创建一个基类RequestInterceptor,然后在每个接口方法前进行拦截添加: ```java public class RequestInterceptor implements Interceptor { @Override ...
22. **XML处理基类XMLHelper.cs**:处理XML数据的读取、删除、添加和修改,是XML数据操作的基础。 23. **数据出库处理类GetSafeData.cs**:专门处理数据库数据出库时可能出现的异常,提高了程序的健壮性。 此外,...
- 创建一个公共基类`BaseAction`继承自`ActionSupport`。 - 在基类中实现必要的接口,并封装常用的操作。 - 示例代码: ```java public class BaseAction extends ActionSupport implements ...
Request Request操作类 Safe 安全操作类 Session Session操作类 Str 字符串操作类 Valid 数据类型验证类 WebConfig Web.Config配置类 ---------------- 公历/农历类 日期格式处理类 文件实用类 上传类 图片...
系统设计之公共类库 ?Data Class Name File Function SQL访问基础类 SqlHelper.cs 执行带参数SQL,非带参数SQL,存储过程等语句 Access操作辅助类 JetAccess.cs Access的新建,压缩,加密等数据库文件操作 Oledb操作辅助...
在MVC控制器中,通常会创建一个公共基类,该基类包含一个用于记录日志的静态对象。例如,在`BaseController`中,我们创建了一个名为`logs`的`log4net.Ext.IExtLog`类型的实例,这个对象负责处理日志记录。然后,子...
这种方式涉及到在页面的公共基类中重写OnError事件。通常,开发者会创建一个自定义的BasePage类,并在该类的OnError事件中添加异常处理逻辑。任何继承自BasePage类的页面在出现异常时,都会执行这个重写的OnError...
例如,一个抽象的基类可以包含所有公共的行为,如权限验证、日志记录和异常处理,而具体的业务逻辑则由子类实现。这种方式可以极大地简化子类的设计,使其专注于核心业务逻辑。 ### 示例 假设我们需要创建一系列...
13. 列举 ASP.NET 中的七个内置对象:Request、Response、Server、Session、Application、Context、Cache。 14. URL 的中文意思是指统一资源定位符。 15. DTD 最大的作用就是验证 XML 文件的正确性。 五、框架结构 ...
在C#中,通常通过静态私有构造函数和一个公共静态方法来实现。例如: ```csharp public sealed class Singleton { private static readonly Singleton instance = new Singleton(); private Singleton() {} ...
抽象类可以包含抽象方法和非抽象方法,用来作为多个子类的公共基类。 4. **文件读写**:Java中的`FileReader`、`FileWriter`、`BufferedReader`、`BufferedWriter`等类提供了文件读写的接口。 5. **串行化...
* .NET Framework 从低到高由公共语言运行库、基类库、类库和应用程序开发技术四层组成。 七、其他 * URL 的中文意思是指统一资源定位符。 * Server.MapPath() 方法的主要功能是获取文件的绝对路径。 * 通过在 IIS...
3. **URL配置**:在基类中定义公共的URL前缀,子类只需传入相对路径,即可构建完整的请求URL。 4. **请求头设置**:统一管理请求头,比如设置Content-Type、Authorization token等。 5. **错误处理**:捕获并处理...
总结来说,"Struts中等同于DispatchAction类方法"是一种在不直接使用`DispatchAction`基类的情况下,通过前端传递方法名并在后端使用反射调用相应方法的技术,以实现多请求映射到单个Action类的多个方法。...
2. **URL参数**:通过`<A>`标签的`href`属性传递参数,接收页面通过`Request["param1"]`获取。 3. **Session**:存储在服务器端,适用于用户会话期间的数据共享。发送页面设置`Session("param1") = "1111"`,接收...
21. **.NET Framework结构**:从底层到高层依次是公共语言运行库、基类库、类库和应用程序开发技术。 22. **运行ASP.NET**:需要安装和配置.NET Framework以及IIS。 23. **访问ASP.NET应用**:通过IIS建立虚拟目录...
21. .NET Framework层次:从底层到高层分别为公共语言运行库、基类库、类库和应用程序开发技术。 22. 运行ASP.NET:需要安装和配置.NET Framework以及IIS。 23. 访问ASP.NET应用:通过在IIS中创建虚拟目录来访问...
2. 控制器方法:控制器类中的公共方法代表操作,如上述的`index()`方法。当访问`/index/index`时,会调用`IndexController`的`index`方法。 三、路由与控制器 ThinkPHP5引入了更灵活的路由机制,允许我们自定义URL...
CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是用于分布式计算的一种标准,它允许不同系统间的软件对象进行交互,就像它们在同一个进程内一样。在C++环境中进行CORBA开发可以帮助...
21. **.NET Framework层次**:从低到高是公共语言运行库、基类库、类库和应用程序开发技术。 22. **运行ASP.NET**:需要安装和配置.NET Framework以及IIS。 23. **访问ASP.NET应用**:通过在IIS中创建虚拟目录,...