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





Reply via email to