`
wengsibo
  • 浏览: 84459 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

根据request给实体类设值

 
阅读更多
 /**
     * 根据request给实体类设值
     * 
     * @author 2011-1-14
     * @param objClass
     * @param request
     * @return
     */
    public static Object setBeanProperty(Class<?> objClass, HttpServletRequest request) {
	Object obj = null;
	try {
	    obj = objClass.newInstance();
	    Field[] fields = objClass.getDeclaredFields(); // 获取自定义字段
	    Class<?> fieldType; // 字段声明类型
	    String fieldName; // 字段名称

	    for (int i = 0; i < fields.length; i++) {
		fieldName = fields[i].getName();
		// 如果为空则跳过该字段
		if (request.getParameter(fieldName) == null) {
		    continue;
		}

		fieldType = fields[i].getType(); // 表示字段的声明类型

		fields[i].setAccessible(true); // 设置不检查该字段是否可访问

		//根据字段不同的类型,转换数据
		if (fieldType == int.class || fieldType == Integer.class) {

		    fields[i].set(obj, Integer.valueOf(request.getParameter(fieldName)));

		} else if (fieldType == long.class || fieldType == Long.class) {

		    fields[i].set(obj, Long.valueOf(request.getParameter(fieldName)));

		} else if (fieldType == float.class || fieldType == Float.class) {

		    fields[i].set(obj, Float.valueOf(request.getParameter(fieldName)));

		} else if (fieldType == double.class || fieldType == Double.class) {

		    fields[i].set(obj, Double.valueOf(request.getParameter(fieldName)));

		} else if (fieldType == boolean.class || fieldType == Boolean.class) {

		    fields[i].set(obj, Boolean.valueOf(request.getParameter(fieldName)));

		} else if (fieldType == Date.class) {
		    
		    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
		    fields[i].set(obj,formatter.parse(request.getParameter(fieldName)));

		} else if(fieldType == String.class){
		    
		    fields[i].set(obj, request.getParameter(fieldName));
		    
		}else {
		    throw new Exception(fieldName + "字段未知类型:" + fieldType.toString());
		}
	    }
	} catch (InstantiationException e) {
	    e.printStackTrace();
	} catch (IllegalAccessException e) {
	    e.printStackTrace();
	} catch (SecurityException e) {
	    e.printStackTrace();
	} catch (IllegalArgumentException e) {
	    e.printStackTrace();
	} catch (Exception e) {
	    e.printStackTrace();
	}
	return obj;
    }
分享到:
评论

相关推荐

    Request中的参数转实体类

    主要用于使用Request中的getParamterMap()方法生成一个实体类,其中还包括getParamterMap中字段的检查方法。详见内容!

    通过枚举反向给实体类赋值

    总结起来,通过创建一个枚举工具类,我们可以实现从枚举的描述反向赋值给实体类,简化了处理表单数据的过程,减少了代码的冗余,提高了代码质量。这个技巧在处理多枚举类型的数据时尤其有用,能够显著提升开发效率。

    一次获得界面所有实体类的数据

    `ParamUtils`类根据setter方法的参数类型(如`int.class`、`Date.class`等),使用适当的转换方法(如`Integer.parseInt`、`SimpleDateFormat.parse`等)将字符串参数转换为正确的类型。 #### 总结 通过`...

    C#实现实体类和XML相互转换

    例如,已知XML字符串xmlString,可以使用XmlDeserialize方法将其转换成实体类Request: ```csharp string xmlString = "&lt;Request&gt;&lt;System&gt;HIS&lt;/System&gt;&lt;SecurityCode&gt;HIS5&lt;/SecurityCode&gt;&lt;PatientInfo&gt;&lt;PatientNo&gt;...

    pageDate封装参数,不用实体类

    this.request = request; Map properties = request.getParameterMap(); Map returnMap = new HashMap(); Iterator entries = properties.entrySet().iterator(); Entry entry; String name = ""; String ...

    Android调用webservice 并传递实体类.docx

    在Android平台上调用WebService并传递实体类涉及到一系列的技术和步骤,因为Android的Dalvik虚拟机(DVM)与Java的Java虚拟机(JVM)之间存在差异。在JVM上,程序执行的是.class文件,而在Android中,程序则运行于....

    springmvc接收json串,转换为实体类List方法

    首先,我们需要理解问题的核心:当尝试通过`@RequestBody`注解接收一个JSON数组并映射到`List&lt;实体类&gt;`时,Spring MVC并没有自动将JSON对象转换为实体类的实例,而是将它们作为`JSONObject`或`Map, Object&gt;`对象放入...

    完整的接口调用实例,包括请求类、返回实体类、接口调用、接口处理文件

    在这个实例中,返回实体类不仅包含基本数据类型,还可能包含对象列表,这可能表示接口返回了一个集合或者数组。利用C#的面向对象特性,可以创建复杂的嵌套结构来表示复杂的数据模型。 4. **接口调用(Interface ...

    java Spring mvc 新增和修改的泛型帮助类,用同一接口修改相同实体类的属性

    本篇将详细介绍如何利用泛型和Hibernate ORM技术实现一个通用的帮助类,以便在处理相同实体类属性的新增和修改时,通过同一接口进行操作。 首先,泛型是Java语言的一个重要特性,它允许在定义类、接口和方法时使用...

    解读@RequestBody的正确使用方法

    在这里,`TestEntity` 是一个Java实体类,其属性与JSON对象中的键相对应。 4. **HttpMessageConverter** `@RequestBody` 背后的机制依赖于 `HttpMessageConverter`。Spring Boot默认提供了几个 `Converter`,包括...

    拼接soap,判断soap是否连接成功,返回接口的信息,解析soap报文,解析后的soap转成实体

    最后,"将解析后的SOAP转成Java实体"意味着将解析出的数据映射到预先定义好的Java类实例上。例如,如果我们有类`YourResponseType`代表返回的数据结构,我们可以使用工具如Apache BeanUtils将XML节点值填充到这些...

    09_Java Web——Request&Response案例

    5. **Request和Response的生命周期**:当请求到达服务器,Servlet容器创建Request和Response对象,传递给`service()`方法,然后调用Servlet的`doGet()`或`doPost()`等方法。完成后,Servlet容器负责销毁这些对象。 ...

    httpRequest

    根据给定的信息,本文将对`HttpHelps`类进行详细的解析,并重点介绍其实现HTTP访问的方法、原理以及具体的代码实现细节。 ### HttpHelps 类概述 `HttpHelps` 类是一个封装了HTTP请求功能的类,它支持通过POST或GET...

    Spring MVC不能直接接收list类型参数的问题

    ### Spring MVC 无法直接接收 List ...这些方法分别通过调整 jQuery 的序列化设置、创建封装对象以及使用 `@RequestBody` 注解来解决该问题。开发者可以根据实际项目需求选择合适的方法来实现前后端数据的有效交互。

    Elasticsearch java工具类

    通过自定义注解,开发者可以在实体类上直接声明字段的mapping,避免了手动编写JSON映射文件的繁琐工作。这使得模型类与Elasticsearch的索引结构更加紧密地关联,提高了代码的可读性和维护性。 关于SpringCloud的...

    Elasticsearch的JAVA操作工具类,包括增删改查的封装

    使用`searchRequest()`方法创建搜索请求,设置查询条件,然后执行请求。 ```java import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import ...

    C# WebApi Get请求方式传递实体参数的方法示例

    如果需要传递比较多、比较复杂的参数,就需要使用实体类来封装。 二、实体类如何转换成QueryString 在将实体类转换成QueryString时,我们可以使用反射来拼装QueryString。首先,获取实体类的所有属性,然后遍历...

    cookie设置httpOnly和secure属性实现及问题

    - **解决方案**: 将servlet的功能重构为工具类或实体类供jsp页面调用。 - **问题3**: 使用session保存用户登录状态时,设置`secure`属性后可能无法正常获取session值。 - **原因**: HTTP请求未携带cookie到服务端...

Global site tag (gtag.js) - Google Analytics