[jbossseam-issues] [JBoss JIRA] Resolved: (JBSEAM-3551) Seam can not convert java.util.Date, it ignores javax.faces.convert.DateTimeConverter

Dan Allen (JIRA) jira-events at lists.jboss.org
Tue Mar 31 01:02:22 EDT 2009


     [ https://jira.jboss.org/jira/browse/JBSEAM-3551?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dan Allen resolved JBSEAM-3551.
-------------------------------

    Resolution: Done
        Labels: jsf converter  (was: )


After I did some thinking, I realized that you are absolutely correct. There is no harm in providing a default converter since it is easily overridden at the input or page parameter. I took your sample code and ran with it. By default, it captures a date using the short pattern according to the locale of the user and the Seam time zone. The defaults can be overridden using component configuration.

The only downside is that the time is left off. Unfortunately, all Java gives us is Date, there is no DateTime type. Yes, there are types in java.sql, but my guess is that nobody uses those. Therefore, we have no way of knowing by default whether the developer wants to capture a time or simply a date. I guess we can go with this implementation and see how people react.

I also updated the docs in several places to mention this feature.

> Seam can not convert java.util.Date, it ignores javax.faces.convert.DateTimeConverter
> -------------------------------------------------------------------------------------
>
>                 Key: JBSEAM-3551
>                 URL: https://jira.jboss.org/jira/browse/JBSEAM-3551
>             Project: Seam
>          Issue Type: Feature Request
>          Components: JSF Integration
>    Affects Versions: 2.0.2.SP1
>         Environment: Jdk 1.5. Tomcat 6.0.18, Jboss Tools 2.1.2
>            Reporter: Francisco Jose Peredo Noguez
>            Assignee: Dan Allen
>             Fix For: 2.2.0.CR1
>
>         Attachments: SeamTestCase.zip
>
>
> Create a Seam project using  Jboss Tools 2.1.2.
> Create a new Seam Form with name "SeamDateForm"
> Open the file SeamDateForm.java and change the value from Integer to java.util.Date.
> Right-click seamDateForm.xhtml and click Run As... -> Run On Server.
> Write something in the form (like for example some random string "dfasdf")
> You will get the error: Conversion Error setting value 'dfasdf' for 'null Converter'. 
> Now create a Date Converter, as the one included in the attached test case project (BTW it inherits from javax.faces.convert.DateTimeConverter).
> Stop the application (just to be 100% sure everything gets loaded correctly)
> Again:
> Right-click seamDateForm.xhtml and click Run As... -> Run On Server.
> Write something in the form (like for example some random string "dfasdf")
> Now you get the right error: value must be a date, eg. 10/13/2008.
> Of course it not only fails when you write a random string, even if you write a correct date, like 01/01/2001, you will get an error that says: Conversion Error setting value '01/01/2001' for 'null Converter'. But if you write your own converter (for example inheriting from javax.faces.convert.DateTimeConverter) everything works fine.
> I think Seam should use javax.faces.convert.DateTimeConverter by default, I shouldn't need to create my own converter.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the seam-issues mailing list