#ajax #jsf-2
#ajax #jsf-2
Вопрос:
Использование JSF 2.0, Glassfish 3.2, Primefaces 2.2.1
У меня есть страница с несколькими составными компонентами. В одном из этих компонентов у меня есть h:selectOneMenu. Я пытаюсь добавить f:ajax для вызова метода при выборе нового значения.
Вот как выглядит компонент h:selectOneMenu на странице:
<h:selectOneMenu id="selectRmDD" styleClass="editSelectRmDD" value="#{scheduleEditSessionBean.selectedRoom}" >
<f:selectItems id="roomList" value="#{scheduleEditSessionBean.roomList}"/>
<f:ajax listener="#{scheduleEditSessionBean.selectRmDD_processValueChange}" event="valueChange" render="@form" />
</h:selectOneMenu>
Когда я выбираю новый элемент из h:selectOneMenu, вызывается функция прослушивателя, но значение в selectedRoom равно null . Я также рассмотрел это в отладчике, и даже значение submittedValue для компонента в AjaxBehaviorEvent также равно null. Вот метод, который вызывается при выборе нового значения, и определение для selectedRoom:
public void selectRmDD_processValueChange( AjaxBehaviorEvent ae) {
String s = getSelectedRoom();
System.out.println( "Selected room = " s );
if( s != null )applyRoomBtn_action();
}
private String selectedRoom = "1";
public String getSelectedRoom() { return this.selectedRoom; }
public void setSelectedRoom(String s) { this.selectedRoom = s; }
Есть идеи, почему значение не заполняется?
Спасибо.
Ответ №1:
Это произойдет, когда значение SelectItem
roomList
has null
или пустой строки в качестве значения в момент отправки формы будет обработано. Никаких других причин на ум не приходит, ожидайте, что, возможно, a Converter
для String.class
которого не выполняет свою работу должным образом, но это должно было повлиять на все входные данные, которые привязаны к String
свойству.