用于将请求参数映射到对象的Java库

时间:2010-10-18 13:45:20

标签: jersey java

我过去在项目中使用过stipes,它有一个很棒的TypeConverter库,可以获取请求参数并将它们路由到JavaBeans。它甚至可以处理地图和数组,例如:

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]'/>

我考虑过将这些代码拉出条纹,但似乎这个库必须存在,我只是不知道它叫什么。

参考信息:我可以访问Java6 JDK,Spring,这恰好是针对Jersey Web服务的MessageBodyReader实现,基本上我想写一个泛型BeanHandlerMessageBodyReader

1 个答案:

答案 0 :(得分:6)

检查Apache Commons BeanUtils框架。

此处是从User Guide

中提取的代码段
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);

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