【发布时间】:2014-04-15 11:11:41
【问题描述】:
在我的应用程序中,我想在 <input> 字段中输入一个日期,该字段是为 JSF 页面以编程方式创建的。
输入字段的创建如下所示:
// Input
String jsfValue = String.format("#{%s.item.%s}", getELClassname(), property.getKey());
ValueExpression valueExpression = JSFUtils.createValueExpression(jsfValue, property.getValue());
HtmlInputText input = (HtmlInputText) app.createComponent(HtmlInputText.COMPONENT_TYPE);
input.setId(property.getKey());
input.setValueExpression("value", valueExpression);
property 是 java.util.Date 的一个实例,<input> 字段只是一个 HtmlInputText 组件,没有分配任何转换器。
当<input>标签被渲染时,可以看到下面的日期值:
Tue Mar 11 18:31:20 CET 2014
如果我知道要保存表单,则 JSF 页面会抱怨日期格式,因为它无法将输入值转换为 java.util.Date。
谁能告诉我如何以编程方式为HtmlInputText 组件创建转换器?
当我在我的应用程序中使用MyFaces 时,转换是自动完成的,因为我以前从未遇到过这个问题。
【问题讨论】:
标签: date jakarta-ee jsf-2 converter html-input