我在这里读了一些文章,他们总是说:
不要以编程方式创建组件,所有可以通过代码执行的操作也可以在xhtml中完成
所以我有一个有趣的问题。
我有组件日历:
<p:calendar>
<f:attribute name="value" value="#{column.properties['from_value']}" />
</p:calendar>
或者你可以简化它:
<p:calendar value="#{column.properties['from_value']}" />
我的问题是: 如何将此字符串转换为ValueExpression? 因为当我运行这段代码。内部p:日历是值&#34;#{bean.object.dateFrom}&#34; ...我需要将其设置为valueExpression而不是String
我得到了什么:
日历:#{bean.object.dateFrom}
我想要实现的目标:
日历: 02.11.2017
-
public ValueExpression createValueExpression(String valueExpression, Class<?> valueType) {
FacesContext context = FacesContext.getCurrentInstance();
return context.getApplication().getExpressionFactory().createValueExpression(context.getELContext(), valueExpression, valueType);
}
...
Calendar fromCalendar = new Calendar();
fromCalendar.setValueExpression("value", createValueExpression(properties.get("from_value"), Object.class));
希望明白我想要实现的目标。 感谢回复