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
- conversion error Jason Nesbitt
- Re: conversion error Mike Kienenberger
- Re: conversion error Sean Schofield
- Re: conversion error ::SammyRulez::
- Re: conversion error Martin Marinschek
- Re: conversion error Dennis Byrne
- Re: conversion error ir. ing. Jan Dockx
- Re: conversion error Martin Marinschek

