版本: 的NetBeans 7.2.1 PrimeFaces:3.5.3 的GlassFish:3.1.2 JDK 1.6JSF - P:AJAX監聽請求參數的NetBeans/primefaces
我一直試圖找到相關問題,並找到接近的主題,但不是我所期待的。我試圖做一些類似PrimeFaces ShowCase的p:schedule demo,我想要一個對話框來顯示點擊事件的細節。
我認爲這個問題是從調用從後臺bean的偵聽器方法來。當我走在在P監聽法鍵入:AJAX標籤上,NetBeans迫使我像一個參數來傳遞:
listener="#{cmodel.onEventSelect(e)}"
,我不認爲這是必要的,因爲我沒有價值反正通過。
我想要麼:
- 東西了與不認識的方法作爲聽衆的NetBeans。 (因爲我一直看到的人調用方法多個例子,而無需傳遞參數。)
或
- 我不是在Model註冊方法作爲聽者正確。
此外,我已經直接從ShowCase複製並粘貼演示到項目中,並且它沒有工作,這使我更加關注NetBeans的問題。 (也就是,但出現的對話框與選擇,關於事件的任何信息)
所以總結;事件顯示出來,因爲他們應該按照時間表本身,我只是不能讓對話框顯示所選事件的事件細節。
任何幫助將不勝感激!
視圖層:
<h:form>
<p:schedule id="nelsonsSchedule" value="#{cmodel.scheduleModel}" showHeader="true"
leftHeaderTemplate="none" rightHeaderTemplate="prev, next today"
draggable="false" timeZone="UTC" styleClass="schedule">
<p:ajax event="eventSelect" listener="#{cmodel.onEventSelect}"
update="eventDialog eventDetails" oncomplete="eventDialog.show()"/>
</p:schedule>
<p:dialog id="eventDialog" widgetVar="eventDialog" header="EventDetails">
<p:panel id="eventDetails">
<h:outputLabel value="#{cmodel.selectedEvent.title}" />
</p:panel>
</p:dialog>
</h:form>
輔助Bean:
@ManagedBean(name = "cmodel")
@SessionScoped 公共類CalendarModel實現Serializable {
private ScheduleModel scheduleModel;
private List<ScheduleEvent> allScheduledGames;
private DefaultScheduleEvent gameEvent;
public ScheduleEvent selectedEvent;
List<Game> allGames;
@PersistenceContext
private EntityManager em;
public CalendarModel() {
}
@PostConstruct
public void init() {
allScheduledGames = new ArrayList<ScheduleEvent>();
allGames = new ArrayList<Game>();
allGames = em.createNamedQuery("Game.findAll").getResultList();
/*create list of games to put into the ScheduleModel*/
for (int i = 0; i < allGames.size(); i++) {
gameEvent = new DefaultScheduleEvent(allGames.get(i).getOpponent() +
"\n\n\n" + allGames.get(i).getTimeOfGame(),
allGames.get(i).getDateOfGame(),
allGames.get(i).getDateOfGame());
if(allGames.get(i).getHomeAway().equals("away")){
gameEvent.setStyleClass("away");
} else{
gameEvent.setStyleClass("home");
}
gameEvent.setData(allGames.get(i));
allScheduledGames.add(gameEvent);
}/*end for*/
scheduleModel = new DefaultScheduleModel(allScheduledGames);
}/*end init()*/
public void onEventSelect (SelectEvent e) {
selectedEvent = new DefaultScheduleEvent();
selectedEvent = (ScheduleEvent) e.getObject();
}