如何将<a4j:repeat> <rich:select>的选定值绑定到模型?</rich:select> </a4j:repeat>

时间:2014-08-19 19:26:52

标签: jsf richfaces

我有以下表格:

<h:form>
    <a4j:repeat var="drillDownSet" value="#{drilldownRequest.itemDetailMap.entrySet().toArray()}">
        <rich:select>
            <f:selectItems value="#{drillDownSet.value}" var="val"
                itemValue="#{drillDownSet.key}" itemLabel="#{val}" />
        </rich:select>
    </a4j:repeat>
    <h:commandButton value="Summit" action="#{drilldownRequest.itemSpecSummit}" />
</h:form>

以下支持bean:

@Named
@RequestScoped
public class DrillDownRequest {

    Map<String, ArrayList> itemDetailMap;

    public void itemSpecSummit() {
        // How can I retrieve all the selected values from the dropdown menus here?
    }

}

如何在操作方法中检索<rich:select>的所有选定值?

1 个答案:

答案 0 :(得分:0)

首先,您的<f:selectItems itemValue>已被破坏。所有选项都是相同。这不对。如果ArrayList 实际一个List<String>,只需这样做:

<f:selectItems value="#{drillDownSet.value}" />

另见:


回到具体问题,并继续上述修复,您只需要使用<rich:select value>作为地图密钥和{{1}将Map<String, String>绑定到另一个#{drillDownSet.key} }作为地图值。

<f:selectItems itemValue>
private Map<String, String> selectedItems = new HashMap<>(); // +getter (setter not necessary)