Регулируя необязательные параметры в сервлет


У меня есть форма, которая отправляет к сервлету, который имеет дополнительные параметры. Если они пусты, они просто игнорируются. Это шаблон, который я использую:

if (!(param = (String)params.get("httpParam")).equals("")) {
   // Handle parameter
}

Это не совсем так. Это работает, но я думаю, что это может быть более читабельным. Какие-либо предложения?



446
7
задан 18 апреля 2011 в 01:04 Источник Поделиться
Комментарии
2 ответа

Я предлагаю извлечь код для получения параметров в отдельный метод (см. извлечение метода рефакторинга по технологии):

param = getOptionalParameter("httpParam");
if (! param.isEmpty()) {
// Handle parameter
}

4
ответ дан 18 апреля 2011 в 02:04 Источник Поделиться

Вы можете заполнить карту, содержащую все ваши параметры и чем конвертировать карту в объект POJO:

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

Где "данные" - это ваш POJO класс с атрибутами, соответствующий вашему имени параметра.

3
ответ дан 19 апреля 2011 в 08:04 Источник Поделиться