I want to pass a parameter to get values for f:selectItem inside p:selectOneMenu. (I used this p:selectOneMenu inside a ui:repeat)
The values that will populate the select one menu needs to be changed depending on the parameter passed to the bean.
I tried as follows, but erros comes as "The class does not have the property 'proceduresPerformedInAProcedureRoom'.
How can I achieve that ?
JSF File
<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>
Controller
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;
}