Primefaces日历未呈现

时间:2011-09-13 08:18:26

标签: jsf-2 primefaces

我正在尝试从后端创建一个primefaces面板。这就是我写的 -

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 个答案:

答案 0 :(得分:1)

您需要将一个值得满足的ValueExpression设置为组件的值,而不是普通的字符串。

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

不要忘记设置ID,否则JSF将不会处理提交的值。

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