[
https://jira.jboss.org/jira/browse/RF-8173?page=com.atlassian.jira.plugin...
]
Joseph Miller commented on RF-8173:
-----------------------------------
@Name( "localDateConverter" )
@BypassInterceptors
@Converter( forClass = LocalDate.class, id = "localDateConverter")
public class LocalDateConverter
implements javax.faces.convert.Converter {
public Object getAsObject( final FacesContext facesContext, final UIComponent
uiComponent, final String input ) {
if( input == null || input.isEmpty() ) {
return null;
}
try {
return new LocalDate( input );
}
catch( Exception e ) {
throw new ConverterException( e );
}
}
public String getAsString( final FacesContext facesContext, final UIComponent
uiComponent, final Object obj ) {
if( obj == null ) {
return "";
}
if( !( obj instanceof LocalDate ) ) {
throw new ConverterException( "Object is not a LocalDate" );
}
final LocalDate localDate = (LocalDate) obj;
return localDate.toString();
}
As far as I can see, my converter isn't even being called at all in the first
example.
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: Andrey Markhel
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