2013-12-12 3 views
1

Iam используя тег ниже для календаря графика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 должен быть инициализирован (не равен нулю), поэтому я думаю, что лучше сделать это в @PostConstruct. В конце концов, если вы хотите повторно инициализировать его в методе, это нормально. – Ioan

+0

Какую область имеет ваш компонент? Какая версия PF? Любые ошибки в консоли браузера при рендеринге страницы? – Manuel

ответ

0

Вы можете инициализировать гр alendar в методе 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. Как вы получаете текущего зарегистрированного пользователя? Некоторые фасоль? Внесите этот бит в свой 'ScheduleController' как' @ ManagedProperty', и там у вас есть ваш пользователь. – Manuel

+0

1) Ничего не получается. Просто пуст ... @ postconstruct будет загружен во время запуска, как я могу получить информацию о пользователе в то время, хотя я ввожу свой компонент в контроллер. –

Смежные вопросы