6
Ich habe folgende (selbsterklärend) Entity-relation:Wie man mehrere Komponenten (selectOneMenu) mit abhängigen Objektbeziehungen aktualisiert?
* Manufacturer
* Car (Manufacturer.getCars())
* Tire (Car.getTires())
MyBean
private List<Manufacturer> allManufacturers
private Manufacturer selectedManufacturer
private Car selectedCar
private Tire selectedTire
xhtml
<p:selectOneMenu id="manufacturerSel" value="#{myBean.selectedManufacturer}" converter="#{manufacturerConverter}">
<f:selectItem itemLabel="None" itemValue="#{null}" />
<f:selectItems value="#{myBean.allManufacturers}" />
<p:ajax update="carSel tireSel" />
</p:selectOneMenu>
<p:selectOneMenu id="carSel" value="#{myBean.selectedCar}" converter="#{carsConverter}" disabled="#{empty myBean.selectedManufacturer.cars}">
<f:selectItem itemLabel="None" itemValue="#{null}" />
<f:selectItems value="#{myBean.selectedManufacturer.cars}" />
<p:ajax update="tireSel" />
</p:selectOneMenu>
<p:selectOneMenu id="tireSel" value="#{myBean.selectedTire}" converter="#{tiresConverter}" disabled="#{empty myBean.selectedCar.tires}">
<f:selectItem itemLabel="None" itemValue="#{null}" />
<f:selectItems value="#{myBean.selectedCars.tires}" />
</p:selectOneMenu>
- die letzten beiden
p:selectOneMenu
B sollte e auf der Auswahl aktualisierte je in den ersten - Die letzten
p:selectOneMenu
mit IDtireSel
wird nicht korrekt aktualisiert zu - All to-be-aktualisierten Komponenten sind innerhalb der gleichen
NamingContainer
- der
carSel
aktualisiert wird, aber die geladenen Werte intireSel
fremd sind (scheinen für die letzte Anforderung gültig zu sein) - ich versuchte auch
update="@form"
inmanufacturerSel
EDIT zeigen, die EL-Version verwendet wird: Heres ein Auszug meiner pom.xml
<dependency>
<groupId>javax.faces</groupId>
<artifactId>javax.faces-api</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.1.12</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
Hi BalusC, obwohl ich EL 2.2 verwende, habe ich 'javax.el.ELException: Parsing fehlgeschlagen den Ausdruck [# {myBean.setSelectedCar (null)}]' – jimmybondy
Welchen Servletcontainer verwenden Sie? In der Zwischenzeit erstellen Sie einfach eine Listener-Methode auf die übliche Weise, die den 'selectedCar'-Eigenschaftswert löscht. – BalusC
Ich werde versuchen, eine Bean-Methode und Call-ID mit '' –
jimmybondy