6
у меня есть следующий (само-пояснительная) сущность-связь:Как обновить несколько компонентов (selectOneMenu) с зависимыми объектами?
* 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>
- последние два
p:selectOneMenu
должны б е обновляется в зависимости от выбора в первом одном - Последний
p:selectOneMenu
с IDtireSel
не обновляется правильно - Все, чтобы быть обновляемые компоненты находятся внутри одной и той же
NamingContainer
- в
carSel
обновляется, но значения, загруженные вtireSel
странные (кажется, действительны для последнего запроса) - я также попытался
update="@form"
вmanufacturerSel
EDIT Чтобы показать, который используется EL Версия: Here's отрывок из моего 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>
Привет, BalusC, хотя с использованием EL 2.2 я получил 'javax.el.ELException: не удалось проанализировать выражение [# {myBean.setSelectedCar (null)}]' – jimmybondy
Какой сервлетконтейнер вы используете? В то же время просто создайте метод слушателя обычным способом, который очищает значение свойства selectedCar. – BalusC
Я попытаюсь добавить bean-метод и идентификатор вызова с помощью '' –
jimmybondy