JSF 2.0:<f:viewparam>和默认转换器</f:viewparam>

时间:2012-07-24 09:43:27

标签: java jsf datetime jsf-2 converter

我想使用标准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中)?

1 个答案:

答案 0 :(得分:4)

转换器ID为javax.faces.DateTime,请尝试

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