Matthias,
When I changed my method getTimeZone() to return a TimeZone, things worked as
expected.
I guess my confusion comes from the TLD Documentation,
http://myfaces.apache.org/impl/tlddoc/index.html.
"When this value is a value-binding to a TimeZone instance, that timezone is
used. Otherwise
this value is treated as a String containing a timezone id, ie as the ID
parameter of method
java.util.TimeZone.getTimeZone(String)."
I read this to mean that the converter would converter would treat String
value-binding the same way
as a String value. Below is a coded version of my expectation.
if (UIComponentTag.isValueReference(value))
{
ValueBinding vb = facesContext.getApplication().createValueBinding(value);
TimeZone timeZone;
Object value = vb.getValue(facesContext);
if (value instanceof TimeZone)
{
timeZone = (TimeZone) value;
}
else
{
timeZone = TimeZone.getTimeZone(value.toString())
}
converter.setTimeZone(timeZone);
}
Is my expectation in keeping with the spec?
If it is case should I enter a JIRA issue?
Paul Spencer
Paul Spencer wrote:
The type is string
public String getTimeZone()
{
return "GMT-05:00";
}
Paul Spencer
Matthias Wessendorf wrote:
<f:convertDateTime type="time"
timeZone="#{phrQueryManager.timeZone}"/>
Is this type of TimeZone ?
*snip*
if (UIComponentTag.isValueReference(value))
{
ValueBinding vb =
facesContext.getApplication().createValueBinding(value);
converter.setTimeZone((TimeZone)vb.getValue(facesContext));
}
*snip*
Regards,
Matthias