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

时间:2015-02-16 15:54:50

标签: jsf-2

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

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

方法

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

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

Thansk寻求帮助。

1 个答案:

答案 0 :(得分:4)

为它们指定相同的名称,以便您可以使用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;
    }
}