Also see the brand new bug I filed (MYFACES-611) earlier today.  Even
with Mike's suggestion your ConverterExceptions may not work as
expected b/c of this.

sean

On 9/23/05, Mike Kienenberger <[EMAIL PROTECTED]> wrote:
> Instead of
>
> return new ConverterException("Invalid Ad Id");
>
> you need to use
>
> throw new ConverterException("Invalid Ad Id");
>
> On 9/23/05, Jason Nesbitt <[EMAIL PROTECTED]> wrote:
> > I have an input text field that is bound to a long value in the backing
> > bean.  I'm using a custom converter because I want the initial value of the
> > input text field to be the empty string and because I want to provide an
> > error message that is more specific.  However, when I enter a value in the
> > text field that is not a valid long I get the following error.
> >  ERROR org.apache.myfaces.el.ValueBindingImpl  - Cannot set
> > value for expression '#{login.adId}' to a new value of type
> > javax.faces.convert.ConverterException
> >  javax.servlet.jsp.el.ELException: Attempt to coerce a
> > value of type "javax.faces.convert.ConverterException" to
> > type "java.lang.Long"
> >
> >  What am I doing wrong here? My input text declaration is
> >
> >  <h:inputText size="12" maxlength="25" value="#{login.adId}"
> > converter="#{login.adIdConverter}" />
> >
> >  and my converter property is
> >
> >  public Converter getAdIdConverter() {
> >          return new Converter() {
> >                  public Object getAsObject(
> >                      FacesContext facesContext,
> >                      UIComponent uiComponent,
> >                      String s) throws ConverterException {
> >                      try {
> >                          return new Long(s);
> >                      } catch (NumberFormatException e) {
> >                          return new ConverterException("Invalid Ad Id");
> >                      }
> >                  }
> >
> >                  public String getAsString(
> >                      FacesContext facesContext,
> >                      UIComponent uiComponent,
> >                      Object o) throws ConverterException {
> >                      Long adId = (Long) o;
> >
> >                      if (adId == null || adId.longValue() == 0) {
> >                          return "";
> >                      } else {
> >                          return String.valueOf(adId);
> >                      }
> >                  }
> >              };
> >      }
> >
> >
> >
> >  Thanks
> >
> >  Jason
> >
>

Reply via email to