【问题标题】:JSF 2.0: <f:viewParam> and default convertersJSF 2.0:<f:viewParam> 和默认转换器
【发布时间】:2012-07-22 14:41:10
【问题描述】:

我想使用标准的 JSF 转换器 (javax.faces.convert.DateTimeConverter) 作为视图参数

来自文档:

您可以使用类或通过其 ID 引用转换器 组件标签的转换器属性。 ID 定义在 应用配置资源文件

然后我尝试了:

<f:viewParam
    name        = "rangeStartCreationDate"
    value       = "#{doiListController.model.rangeStartCreationDate}"
    converter   = "javax.faces.convert.DateTimeConverter"
/>

但我明白了

javax.faces.FacesException: Expression Error: Named Object: javax.faces.convert.DateTimeConverter not found.

然后我尝试了第二个选项(按 ID)。我在faces-config.xml中定义了转换器

<converter> 
    <converter-id>DateTimeConverter</converter-id> 
    <converter-class>javax.faces.convert.DateTimeConverter</converter-class> 
</converter>

并使用了 ID

<f:viewParam
    name        = "rangeStartCreationDate"
    value       = "#{doiListController.model.rangeStartCreationDate}"
    converterId = "DateTimeConverter"
/>

在这种情况下我得到

Conversion Error setting value 'Tue Jul 24 00:00:00 CEST 2012' for 'null Converter'.

有没有办法让 JSF 实例化转换器或者我必须手动实例化它(在某些 bean 中)?

【问题讨论】:

  • 转换器id是javax.faces.DateTime,所以试试converter="javax.faces.DateTime"
  • @Adam 谢谢它的工作!将其发布为答案,以便我接受。

标签: java jsf datetime jsf-2 converter


【解决方案1】:

转换器id是javax.faces.DateTime,所以试试

<f:viewParam
  converter="javax.faces.DateTime"
... />

【讨论】:

    猜你喜欢
    • 2013-02-25
    • 1970-01-01
    • 2011-12-26
    • 2018-11-25
    • 1970-01-01
    • 2012-09-03
    • 2012-09-04
    • 2012-12-26
    • 2013-04-18
    相关资源
    最近更新 更多