Библиотека Java для отображения параметров запроса на объект - PullRequest
2 голосов
/ 18 октября 2010

В прошлом я использовал стайпы для проекта, и у него есть отличная библиотека 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, весна, и это происходит для реализации MessageBodyReader веб-службы Джерси, в основном я хотел бы написать универсальный BeanHandlerMessageBodyReader

1 Ответ

6 голосов
/ 18 октября 2010

Проверьте Apache Commons BeanUtils framework.

Здесь фрагмент кода, извлеченный из Руководства пользователя

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);

Может обрабатыватьсяиндексированные и сопоставленные свойства, а также позволяет вам определять свои собственные конвертеры.

...