Как обрабатывать сопоставление данных со страницы в сервлет - PullRequest
0 голосов
/ 04 января 2012

Так что вот сделка, у меня есть набор атрибутов, которые являются флажками. Оба являются флажками HTML, но один отмечен = true, где как другой отмечен = 1. (Не был уверен, как избежать, так что неуместные кавычки только для галочки)

"<"input type="checkbox" class="attribute" name="trueFalse" value="true"/>

"<"input type="checkbox" class="attribute" name"oneZero" value="1"/>

Проблема возникает, когда они не проверены, я не могу найти способ передать false или 0, вместо этого свойство запроса просто не существует. Поэтому я пытаюсь найти лучший способ справиться с этим, пока что я придумал ...

  1. Используйте JS и установите скрытое вместо фактического текстового поля -Я не хочу этого делать, потому что тогда для каждого нового атрибута мне нужно редактировать JS
  2. Добавить перечисление со значением по умолчанию
  3. Создать какой-то фильтр

У кого-нибудь есть идеи получше или поклонник одного из вариантов?

Код обработки выглядит следующим образом

public Map<Utils.Attributes, String> getAttributesFromRequest(HttpServletRequest request, String postfix, String prefix){
    Map<Utils.Attributes, String> returnValue = new HashMap<Utils.Attributes, String>();
    for (Utils.Attributes attr : Utils.Attributes.values()) {
        StringBuilder sb = new StringBuilder();
        sb.append(prefix);
        sb.append(attr.getName());
        sb.append(prefix);
        String value = request.getParameter(sb.toString());
        if(testValue(value)){
            returnValue.put(attr, value);
        }
    }
    return returnValue;
}

1 Ответ

2 голосов
/ 04 января 2012

Почему бы вам просто не поместить значения по умолчанию на карту (false и 0) и переопределить их значениями из параметров запроса, если они присутствуют?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...