Календарь Primefaces не отображается - PullRequest
0 голосов
/ 13 сентября 2011

Я пытаюсь создать панель простых лиц из бэкэнда.Это то, что я написал -

Calendar calendar = new Calendar();
String expression = "#{calendarBean.date1}";
boolean _showButtonPanel = true;
calendar.setValue(expression);
calendar.setShowButtonPanel(_showButtonPanel );
Panel.getChildren().add(calendar);

Но я могу получить только текстовое поле без "calendar.setValue (expression);"но со строкой выдает исключение -

com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback visit
SEVERE: java.lang.IllegalArgumentException: Cannot format given Object as a Date

1 Ответ

1 голос
/ 13 сентября 2011

Вам нужно установить полноценное значение ValueExpression в качестве значения компонента, а не обычную ванильную строку.

FacesContext facesContext = FacesContext.getCurrentInstance();
ValueExpression valueExpression = facesContext.getApplication().getExpressionFactory()
    .createValueExpression(facesContext.getELContext(), "#{calendarBean.date1}", Date.class);
calendar.setValueExpression("value", valueExpression);
// ...

Не забудьте также установить идентификатор, иначе JSF не обработает переданное значение.

calendar.setId("date1");
// ...
...