У меня есть эта модель:Показать конкретную модель свойства на основе выбранного элемента
public class Rent {
private Integer priceDay;
private Integer priceWeek;
private Integer priceMonth;
// ...
}
Я хотел бы показать цену желаемого срока в зависимости от типа цен, выбранного в раскрывающемся списке, который может быть «день «неделя» и «месяц». В настоящее время, я решил его следующим образом:
<h:selectOneMenu value="#{bean.priceType}">
<f:selectItem itemValue="" itemLabel="Price" />
<f:selectItem itemValue="day" />
<f:selectItem itemValue="week" />
<f:selectItem itemValue="month" />
<f:ajax listener="#{bean.changePrice}" render="price" />
</h:selectOneMenu>
<h:outputText id="price" value="#{bean.price}" />
с
public void changePrice(){
if (priceType.compareTo("day") == 0) {
price = rent.getPriceDay();
} else if (priceType.compareTo("week") == 0) {
price = rent.getPriceWeek();
} else if (priceType.compareTo("month") == 0) {
price = rent.getPriceMonth();
}
}
Однако, я чувствую, что это неуклюжее и должен быть проще и более удобным способом добиться того же, без необходимости для целого блока if-else и копий свойств модели в контроллере. Это возможно?
EL работает на веб-сервере, а не в веб-браузере. Может быть, у вас был JavaScript? – BalusC
Я думал что-то с JSF на самом деле, но ничего не дошло до сих пор =] –
Как именно текущий подход «неэлегантный»? – BalusC