动态获取request对象中的元素封装至实体类中

在写java 的jsp的时候 我写了太多的 request.getparameter("") 写吐的不行不行的了 又不想用框架  想直接写一个工具将数据利用反射机制 封装到实体类中  哈哈 所以说 懒是第一生产力


废话少说 先看 需求 

1.得到用户传入的 HttpServletRequest  对象  

2.得到用户传入的javabean 的类对象 (用于反射生成实体类)

3.将数据按照javabean中的属性进行一对一映射


难点 

1.如何使 javabean的属性和表单中的name 一一对应 

2如何将将值动态传给属性


如何解决

1.java 的反射


1我们取得request 的请求参数 map(键值对)

2取得实体类的属性数组

3便利属性集合数组  (这里 我们以javabean为基准 why? 见为下文)

public Object inputRequestReturnEntity(Class clazz, HttpServletRequest request)
			throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException,
			InvocationTargetException, NoSuchMethodException, SecurityException {

		// Class clazz = CreateClass(ClassName);
		// 便利request中的所有请求参数及参数值
		// Enumeration<String> enumeratio
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤将request.getParameter接收的参数封装实体类对象: 1. 创建一个空的实体类对象。 2. 使用request.getParameter获取所有需要封装的参数,并将其存储在一个Map<String, String>对象。 3. 使用Java反射API获取实体类的所有属性,并将其存储在一个数组。 4. 遍历属性数组,使用属性的名称作为键从参数Map获取对应的值,并使用Java反射API将该值设置到实体类对象的对应属性。 5. 返回封装好的实体类对象。 以下是一个示例代码片段,展示了如何将request.getParameter接收的参数封装实体类对象: ```java public static User getUserFromRequest(HttpServletRequest request) throws Exception { User user = new User(); Map<String, String> params = new HashMap<>(); Enumeration<String> paramNames = request.getParameterNames(); while (paramNames.hasMoreElements()) { String paramName = paramNames.nextElement(); String paramValue = request.getParameter(paramName); params.put(paramName, paramValue); } Field[] fields = User.class.getDeclaredFields(); for (Field field : fields) { String fieldName = field.getName(); String fieldValue = params.get(fieldName); if (fieldValue != null) { field.setAccessible(true); if (field.getType() == int.class) { field.setInt(user, Integer.parseInt(fieldValue)); } else { field.set(user, fieldValue); } } } return user; } ``` 在此示例,我们假设了一个名为User的实体类,该类具有一些字符串和整数属性。getUserFromRequest方法接收一个HttpServletRequest对象,并返回一个封装好的User对象,该对象的属性值来自于getParameter接收的参数。该方法使用Java反射API获取User类的所有属性,并使用属性的名称从参数Map获取对应的值,并将该值设置到User对象的对应属性。最后,该方法返回封装好的User对象

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值