[seam-issues] [JBoss JIRA] Updated: (JBSEAM-4413) Date format error in .page.xml params when having custom date pattern

Pete Muir (JIRA) jira-events at lists.jboss.org
Thu Feb 4 12:26:26 EST 2010


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

Pete Muir updated JBSEAM-4413:
------------------------------

    Assignee:     (was: Norman Richards)


> Date format error in .page.xml params when having custom date pattern
> ---------------------------------------------------------------------
>
>                 Key: JBSEAM-4413
>                 URL: https://jira.jboss.org/jira/browse/JBSEAM-4413
>             Project: Seam
>          Issue Type: Bug
>    Affects Versions: 2.1.2.GA
>         Environment: Seam 2.1.2.GA, DB2
> http://fisheye.jboss.org/browse/Seam/branches/community/Seam_2_1/src/main/org/jboss/seam/navigation/Param.java?r=10375
>            Reporter: Julien Kronegg
>            Priority: Minor
>             Fix For: 2.2.1.CR1
>
>   Original Estimate: 1 day
>  Remaining Estimate: 1 day
>
> The java.util.Date passed by <param> tags in the .page.xml file are converted from Date to String for the GET request, using the date format defined in the last used rich:calendar. Then, the GET parameters are converted back from String to Date using the default date format which may not be the same as the one defined in the rich:calendar.  This results in date conversion errors such as "value must be a date, eg. 10/13/2008". 
> The issue is fully described with an example in http://seamframework.org/Community/DateFormatErrorInPagexmlParamsASeamIssue
> To correct this issue, the org.jboss.seam.navigation.Param should use its own date converter instead of sharing the converter with other JSF components (in other words, the Param class should use a technical date converter). This requires the following steps:
> 1)  define a org.jboss.seam.faces.DateParamConverter date converter with a selectable date format defaulted to "yyyyMMddHHmmssSSS"
> 2) change the org.jboss.seam.navigation.Param class to use a the DateParamConverter converter if the param value is java.util.Date, else, use the converters registered in JSF. This is done by changing:
>     Class<?> type = valueExpression.getType();
>     if (type==null)
>     {
>         return null;
>     }
>     return FacesContext.getCurrentInstance().getApplication().createConverter(type);
> by 
>     Class<?> type = valueExpression.getType();
>     if (type==null)
>     {
>         return null;
>     }
> +  if (type.equals(Date.class)) {
> +     return org.jboss.seam.faces.DateParamConverter.getInstance(); // return an instance of the technical converter, to be created
> +  } else {
>         return FacesContext.getCurrentInstance().getApplication().createConverter(type);
> +  }

-- 
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