Get all hidden input fields in JSF dynamically

jsf-2

Solution

Give them all the same name, so that you can use `getRequestParameterValuesMap()` instead.

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

The ordering is guaranteed to be the same as in HTML DOM.

Alternatively, based on the incremental integer suffix as you've in the HTML DOM, you could also just get the request parameter in a loop until `null` is returned.

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

Problem

I have some hidden inputs that are generated dynamically using JQuery. For example : ``` <input type="hidden" name="name1" value="SomeValue1"> <input type="hidden" name="name2" value="SomeValue2"> ``` The method ``` FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("name1") ``` returns the value `SomeValue1` which is correct. But, at runtime I am not aware of the input names. How can I get all the hidden inputs without knowing their names ? Thansk for help.

Original source

Related problems