2013-12-12 59 views
1

Primefaces時間表不使用下面的標籤的日程日曆工作

<p:schedule id="schedule" value="#{scheduleController.eventModel}" widgetVar="myschedule"> 

是,如果我在構造函數初始化這個eventModel ......如果我在其他一些方法來初始化的時間表只得到顯示這裏的問題構造器相比它不工作...任何人都可以幫助..

這裏eventModel代碼相同primefaces顯示情況一樣

eventModel = new DefaultScheduleModel(); 
    eventModel.addEvent(new DefaultScheduleEvent("Champions League Match", previousDay8Pm(), previousDay11Pm())); 
    eventModel.addEvent(new DefaultScheduleEvent("Birthday Party", today1Pm(), today6Pm())); 
    eventModel.addEvent(new DefaultScheduleEvent("Breakfast at Tiffanys", nextDay9Am(), nextDay11Am())); 
    eventModel.addEvent(new DefaultScheduleEvent("Plant the new garden stuff", theDayAfter3Pm(), fourDaysLater3pm())); 
+0

什麼是「某種方法」?是你調用的方法嗎?你什麼時候調用'某種方法'?初始化日曆後,你是否更新了'schedule'元素? – Manuel

+0

scheduleController.eventModel應該被初始化(非null),所以我認爲最好在@PostConstruct中做。最終,如果你想在一個方法中重新初始化它,那很好。 – Ioan

+0

你的豆有什麼範圍?哪個PF版本?渲染頁面時出現瀏覽器控制檯錯誤? – Manuel

回答

0

可以初始化你的c alend在PostConstruct方法。該方法將在類的構造函數被調用後直接調用,並且所有@ManagedProperty s都被設置爲1

public class ScheduleController { 

    @ManagedProperty 
    private UserBean userBean; // + setter 

    private ScheduleModel eventModel; // + getter 

    private ScheduleController() { 
    // do nothing here 
    } 

    @PostConstruct 
    private void init() { 
    eventModel = new DefaultScheduleModel(); 

    if (userBean.hasPermission("something")) { 
     eventModel.addEvent(new DefaultScheduleEvent("one", date1, date2)); 
     eventModel.addEvent(new DefaultScheduleEvent("two", date2, date3)); 
    } else { 
     eventModel.addEvent(new DefaultScheduleEvent("three", date4, date5)); 
     eventModel.addEvent(new DefaultScheduleEvent("four", date5, date6)); 
    } 
    } 

} 
+0

它不工作。此外,我不能使用postconstruct,因爲日程安排需要根據登錄用戶動態更改... –

+0

1.詳細說明'它不工作'?會發生什麼,呈現的是什麼? 2.如何獲取當前登錄的用戶?由一些豆?將這個bean注入你的'ScheduleController'作爲'@ ManagedProperty',在那裏你得到了你的用戶。 – Manuel

+0

1)什麼都沒有得到渲染..只是空白... @ postconstruct將在啓動時加載我怎麼能在那時獲得用戶信息事件雖然我注入我的bean到控制器。 –