Primefaces日历未呈现 [英] Primefaces Calendar not rendered

查看:161
本文介绍了Primefaces日历未呈现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm trying to create a primefaces panel from backend. This is what I've written -

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

但是我只能检索没有"calendar.setValue(expression);"的文本框.但在该行中会引发异常-

But i'm able to retrieve only a textbox without the "calendar.setValue(expression);" but with the line it throws an exception -

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

推荐答案

您需要将一个完全值ValueExpression设置为组件的值,而不是普通的香草字符串.

You need to set a fullworthy ValueExpression as component's value, not a plain vanilla string.

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

请不要忘记设置一个ID,否则JSF将不会处理提交的值.

Don't forget to set an ID as well, or JSF won't process the submitted value.

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

这篇关于Primefaces日历未呈现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆