Java库将请求参数映射到对象上 [英] Java library to map request parameters onto an object

查看:82
本文介绍了Java库将请求参数映射到对象上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我过去在一个项目上使用过stipes,它具有出色的TypeConverter库,该库可以接受请求参数并将其路由到JavaBeans中.它甚至可以处理地图和数组,例如:

I have used stipes on a project in the past, and it has a great TypeConverter library that can take request parameters and route them into JavaBeans. It can even handle maps and arrays, such that:

class A {
 private int num;
 private Map<String, Integer> map;
 private List<String> list;
 ... setters and getters ...
}

<input type='text' name='num'/>
<input type='text' name='map["a"]'/>
<input type='text' name='map["b"]'/>
<input type='text' name='list[0]'/>
<input type='text' name='list[1]'/>

我曾经考虑过只是从条纹中取出那部分代码,但是似乎这个库必须存在,我只是不知道它叫什么名字.

I have considered just pulling that bit of code out of stripes, but it seems like this library must exist, I just don't know what it is called.

参考信息:春天,我可以访问Java6 JDK,而这恰好是针对Jersey Web服务MessageBodyReader实现的,基本上我想编写一个通用的BeanHandlerMessageBodyReader

Reference info: I have access to Java6 JDK, spring, and this happens to be for a Jersey web service MessageBodyReader implementation, basically I'd like to write a generic BeanHandlerMessageBodyReader

推荐答案

检查 Apache Commons BeanUtils 框架.

此处,是从用户提取的代码段指南

HttpServletRequest request = ...;
MyBean bean = ...;
HashMap map = new HashMap();
Enumeration names = request.getParameterNames();
while (names.hasMoreElements()) {
  String name = (String) names.nextElement();
  map.put(name, request.getParameterValues(name));
}
BeanUtils.populate(bean, map);

它可以处理索引和映射的属性,还可以让您定义自己的转换器.

It can process indexed and mapped properties, and also lets you define your own converters.

这篇关于Java库将请求参数映射到对象上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆