我过去在项目中使用过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
答案 0 :(得分:6)
此处是从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);
它可以处理索引和映射的属性,还可以定义自己的转换器。