Получить все скрытые поля ввода в JSF динамически

У меня есть некоторые скрытые входы, которые генерируются динамически с использованием JQuery. Например:

<input type="hidden" name="name1" value="SomeValue1">
<input type="hidden" name="name2" value="SomeValue2">

Метод

FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("name1") 

возвращает значение SomeValue1 что правильно. Но во время выполнения я не знаю имен ввода. Как я могу получить все скрытые данные, не зная их имен?

Спасибо за помощь.

1 ответ

Решение

Дайте им одно и то же имя, чтобы вы могли использовать getRequestParameterValuesMap() вместо.

<input type="hidden" name="name" value="SomeValue1">
<input type="hidden" name="name" value="SomeValue2">
...
String[] names = externalContext.getRequestParameterValuesMap().get("name");

Порядок гарантированно будет таким же, как в HTML DOM.

В качестве альтернативы, на основе инкрементного целочисленного суффикса, как у вас в HTML DOM, вы также можете просто получить параметр запроса в цикле до null возвращается

List<String> names = new ArrayList<>();

for (int i = 1; i < Integer.MAX_VALUE; i++) {
    String name = requestParameterMap.get("name" + i);

    if (name != null) {
        names.add(name);
    } else {
        break;
    }
}
Другие вопросы по тегам