动态获取 JSF 中所有隐藏的输入字段

Get all hidden input fields in JSF dynamically

我有一些使用 JQuery 动态生成的隐藏输入。例如:

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

方法

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

returns 值 SomeValue1 是正确的。但是,在运行时我不知道输入名称。如何在不知道其名称的情况下获取所有隐藏的输入?

感谢帮助。

给他们一个相同的名字,这样你就可以用getRequestParameterValuesMap()代替。

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

顺序保证与HTMLDOM.

中的顺序相同

或者,根据您在 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;
    }
}