Вот проблема: actionlistener не хочет запускаться
@ManagedBean(name="hotelsController")
@SessionScoped
public class HotelsController implements Serializable {
public void requestHotelAvail(ActionEvent event) {
request = new Request(df.format(arrivalDate), df.format(departureDate));
}
}
и xhtml
<h:panelgroup id="rooms"/>
<h:form id="hotelSearch">
<p:commandButton actionListener="#{hotelsController.requestHotelAvail}" value="submit" update="rooms" />
</h:form>
Я перепробовал все, что мог найти, изменил @managedbean
на @component
, установил import
на import javax.faces.event.ActionEvent;
Но все равно ничего не срабатывает.
Форма находится в p:accordion
и при использовании с h:commandbutton
работает нормально
РЕДАКТИРОВАТЬ : извините за ввод в заблуждение. номера обновляются после щелчка, но actionListener не запускается. поэтому комнаты не получат никаких новых данных. Важный код в requestHotelAvail
необходимо запустить перед обновлением номеров, а его нет.
EDIT2 : PrimeFaces 2.2.1
- я прочитал целое руководство для простых лиц, но нет никакого объяснения этому, поскольку я сделал все, что в нем говорится
Я пытался использовать action
вместо actionListener
без ActionEvent
, но он никогда ничего не делал. использование <h:commandbutton action="#{hotelscontroller.requestHotelAvail}"/>
прекрасно работает, но я хочу, чтобы движок ajax обновлял только эту rooms
panelgroup
ОБНОВЛЕНИЕ : Теперь это работает. Форма не может быть в <p:accordion>
, но почему и как ее там включить? Форма сейчас я буду работать без нее.