[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