`
wengsibo
  • 浏览: 80397 次
  • 性别: 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中字段的检查方法。详见内容!

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

    通过枚举反向给实体类赋值工具类,减少表单提交时通过request.getParameter(name)方式获取提交值的重复操作

    pageDate封装参数,不用实体类

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

    后台轻量级建站包 v2.0

    比如数据库字段为user.id那么实体类会自动更新自当前实体类下面名为user类的内容;使用list包含对象可以一对多获取数据库信息;数据库使用对象必须加点;比如user.id,address.id;继承dispatchservlet可以更方便使用...

    eladmin-web前端源码.rar

    我们还是根据源码来寻找答案,仔细研究eladmin的官网对于异常处理的说明后,我们首先来看后端异常实体类ApiError 这个实体中主要封装三个信息 状态status,默认是400; timestamp,默认是当前的时间; String类型...

    C#微信公众号开发SDK

    Entities/Response*.cs 用于反馈给发送人的信息实体(最终会转成XML),包括文本、新闻(图文)两类 Helpers/EntityHelper.cs 用于实体和XML之间的转换(由于其中有许多需要特殊处理的字段和类型,这里不能简单用...

    微信公众平台(c#实现)

    Entities/Response*.cs 用于反馈给发送人的信息实体(最终会转成XML),包括文本、新闻(图文)两类 Helpers/EntityHelper.cs 用于实体和XML之间的转换(由于其中有许多需要特殊处理的字段和类型,这里不能简单用...

    乐优商城.xmind

    ly-item-interface:主要是对外暴露的API接口及相关实体类 ly-item-service:所有业务逻辑及内部使用接口 创建父工程ly-item ly-item-interface ly-item-service 依赖 启动器 application.yml 添加商品...

    Java Web应用开发:展示全部商品.docx

    (3) 创建Product类(实体类),该类的每个成员变量对应表的一个字段。 (4) 创建ProdcutServlet类,处理用户查看商品的请求,调用ProductDao类中的查询方法,将查询结果保存在request属性中,转发到showProducts.jsp...

    JSP 相关对象的使用介绍

    request 此对象封装了由WEB浏览器或其它客户端生成的HTTP请求的细节(参数,属性,头标和数据); request(用户请求期) ServletRequest的子类型 response 此对象封装了返回到HTTP客户端的输出,向页面作者提供...

    Swagger(狂神说Java)(教学视频+源代码)

    Swagger(狂神说Java) ...七、实体类配置 八、测试 1.测试hello方法 2.测试user()方法 3.测试hello2方法 4.测试hello3方法 5.测试postt方法 5.1 直接传对象 5.2 添加@RequestBody注解,则前端传一个JSON对象 总结:

    VolleyLib:一个轻量级的网络通讯库,支持文件上传,文件下载,圆形图片,Form表单,Json数据协议,Gson解析泛型实体的功能

    简介: ...FormRequest: 类似web端的form表单Request,支持内容格式application/x-www-form-urlencoded,Gson解析生成对应的泛型实体类。 GsonRequest:Json数据协议的Request,支持内容格式applicatio

    Java中实现参数名ASCII码从小到大排序(字典序).doc

    此代码为工具类代码,可直接下载使用,调用此方法将需要排序的参数传入即可

    source.zip

    那后台可以通过创建一个字段名称对应的实体类来接收 或者使用String name = request.getParameter("name")的方式来接收 3、如果ajax选择的GET方法,那后台方法的字段名称和url的入参名称保持一致就能接收到数据了 ...

    java实训课程设计报告.doc

    继承实体类,可以引用实体类的所有私有属性。 " " " 3、设计/实习过程 "实体类代码如下: " "package com; " " " "public class Employee { " " " "private String name; " "private String title; " "private float...

    从J2SE到J2EE知识点介绍

    3. 如何写自定义action,实体,以及业务类 141 (二) Struts2 153 1. struts2的拦截器定义以及使用 153 2. struts标签 160 3. Struts 2 标签库说明及使用 160 4. set 描述 169 5. text 描述 170 6. property 描述 170...

    IPCamera--服务器接入技术规范.pdf

    命令分为两类,Request 命令和 Response 命令,Request 命令以"_REQ" 结束,Response 命令以"_RESP"结束。例如:AUTH_REQ,UPDATE_PLAY_RESP。 命令的基本属性。命令有下面几个属性:会话 ID,序列号,状态码,状态...

    金蝶K3星空云获取报表查询 WEB API(成本计算单报表查询) JAVA版.rar

    8. 本人保证此贡献的代码为报表查询的核心代码,足以反映报表查询的基本思路,即接口请求和返回数据解析,解析为实体类。 9.核心代码类文件:BaseService.java、IJdCostManageService.java、JdCostManageServiceImpl...

    Struts+Hibernate+Sprign 通用分页

    拥有从Request里面拿实体属性值的工具类 具有实现了数字分页工具栏的分页的功能 可以通过多种方式分页 1,普通的上一页,下一页 2,下拉框 3,比较复杂的数字分页工具栏的分页 通用Hibernate Dao 最后真心话! ...

    (sjie)山寨版通用分页

    拥有从Request里面拿实体属性值的工具类 具有实现了数字分页工具栏的分页的功能 可以通过多种方式分页 1,普通的上一页,下一页 2,下拉框 3,比较复杂的数字分页工具栏的分页 通用Hibernate Dao 最后真心话! ...

Global site tag (gtag.js) - Google Analytics