[
https://jira.jboss.org/jira/browse/RF-8173?page=com.atlassian.jira.plugin...
]
Joseph Miller commented on RF-8173:
-----------------------------------
Thanks for your efforts, you are indeed correct.
For future reference for people using Joda:
private final String _defaultPattern = "dd/MM/yyyy";
public Object getAsObject( final FacesContext facesContext, final UIComponent
uiComponent, final String input )
{
...
final String componentPattern = (String) uiComponent.getAttributes().get(
"datePattern" );
final String patternToUse = componentPattern != null ? componentPattern :
_defaultPattern;
final DateTimeFormatter fmt = DateTimeFormat.forPattern( patternToUse );
return new LocalDate( fmt.parseDateTime( input ) );
...
}
public String getAsString( final FacesContext facesContext, final UIComponent uiComponent,
final Object obj )
{
...
final String componentPattern = (String) uiComponent.getAttributes().get(
"datePattern" );
final String patternToUse = componentPattern != null ? componentPattern :
_defaultPattern;
final LocalDate localDate = (LocalDate) obj;
return localDate.toString( patternToUse );
}
Regression: Calendar: converter is not working
----------------------------------------------
Key: RF-8173
URL:
https://jira.jboss.org/jira/browse/RF-8173
Project: RichFaces
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: component-input, regression
Affects Versions: 3.3.2.SR1
Environment: JBoss 5.0 / Seam 2.1.2.GA
Reporter: Joseph Miller
Assignee: Alex Kolonitsky
Fix For: 3.3.3.BETA1
I have a model property with is a Joda LocalDate. For normal input fields, I have a
converter, which is working fine. However, when I try to use the converter with
rich:calendar, it complains:
<rich:calendar id="from" locale="AU"
showApplyButton="false" popup="true"
enableManualInput="true"
datePattern="dd/MM/yyyy"
value="#{adviserAvailability.validFrom}">
<f:converter converterId="localDateConverter" />
</rich:calendar>
javax.faces.convert.ConverterException: Value must be a date
at javax.faces.convert.DateTimeConverter.getAsObject(DateTimeConverter.java:401)
at org.richfaces.component.UICalendar.getAsDate(UICalendar.java:399)
at org.richfaces.component.UICalendar.getAsDate(UICalendar.java:410)
at org.richfaces.component.UICalendar.getCurrentDateOrDefault(UICalendar.java:374)
at org.richfaces.renderkit.html.CalendarRenderer.doEncodeEnd(CalendarRenderer.java:381)
at org.richfaces.renderkit.html.CalendarRenderer.doEncodeEnd(CalendarRenderer.java:531)
at org.ajax4jsf.renderkit.RendererBase.encodeEnd(RendererBase.java:134)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861)
...
I'm defining the converter as such:
@Name( "localDateConverter" )
@BypassInterceptors
@Converter( forClass = LocalDate.class, id = "localDateConverter")
public class LocalDateConverter
implements javax.faces.convert.Converter {
public Object getAsObject( ... ) { .... }
public String getAsString( ... ) { .... }
}
If I turn the property into a Date by using:
value="#{adviserAvailability.validFrom.toDateMidnight().toDate()}"
I get a conversion error, as I would expect from with LocalDateConverter.getAsObject, so
it's definitely being made available.
I get the same issue regardless of if I use <f:converter> or the converter
attribute of <rich:calendar>
--
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