Получить все скрытые поля ввода в 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;
}
}