如何传递参数以获取 p:selectOneMenu 内 f:selectItem 的值

问题描述

我想传递一个参数来获取 p:selectOneMenu 中 f:selectItem 的值。 (我在 ui:repeat 中使用了这个 p:selectOneMenu)

需要根据传递给 bean 的参数更改填充 select one 菜单的值。

我尝试如下,但错误是“该类没有属性 'proceduresPerformedInAProcedureRoom'。

我怎样才能做到这一点?

JSF 文件

<table >
    <tr>
        <td>
            <p:outputLabel value="Room" ></p:outputLabel>
        </td>
        <td>
            <p:selectOneMenu value="#{ii.ci.institutionValue}" >
                <f:selectItem itemLabel="Please select" ></f:selectItem>
                <f:selectItems value="#{webusercontroller.loggableProcedureRooms}"
                               var="ipr"
                               itemLabel="#{ipr.name}"
                               itemValue="#{ipr}">
                </f:selectItems>
                <f:ajax event="change" execute="@this" render="prM lblPrM" ></f:ajax>
            </p:selectOneMenu>
        </td>
    </tr>
    <tr>
        <td>
            <p:outputLabel id="lblPrM" value="Procedures for #{ii.ci.institutionValue}" ></p:outputLabel>
        </td>
        <td>
            <p:selectOneMenu id="prM" value="#{ii.addingItem.ci.itemValue}" >
                <f:selectItem itemLabel="Please select" ></f:selectItem>
                <f:selectItems value="#{relationshipController.proceduresPerformedInAProcedureRoom}" 
                               var="li"
                               itemLabel="#{li.displayName}" 
                               itemValue="#{li}">
                    <f:param name = "procedureRoom" value = "#{ii.ci.institutionValue}" />
                </f:selectItems>
            </p:selectOneMenu>
        </td>
    </tr>
</table>

控制器

public List<Item> proceduresPerformedInAProcedureRoom(Institution procedureRoom){
    List<Relationship> rs = findRelationships(institution,RelationshipType.Procedure_for_institution);
    List<Item> ps = new ArrayList();
    for(Relationship r:rs){
        ps.add(r.getItem());
    }
    return ps;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)