Hello, I have the same problem, did you find a solution? My parameter is an ArrayList.
Yaniv. Stephane Grenier-2 wrote: > > Hi all, > > I'm trying to create a custom component and I've got it working when the > input value is a String type parameter from my backend bean. However my > problem is that it's not working when the parameter is anything but a > String > object, say a data model object. I've tried a number of options, and I > know > it's possible, but I can't seem to get it. I've even seen a post that said > to look at the schedule tag, but I can't seem to isolate the right > snippet. > Therefore you're assistance would be immensely appreciated. So far here's > what I have: > > public class AddressTag extends UIComponentTag > { > private String address; > > ... set/getAddress(String address); > > @Override > protected void setProperties(UIComponent component) > { > /* you have to call the super class */ > super.setProperties(component); > ((AddressComponent)component).setValue(address); > > FacesContext context = FacesContext.getCurrentInstance(); > Application application = context.getApplication(); > ValueBinding binding = application.createValueBinding(address); > component.setValueBinding("value", binding); > } > > ... // other methods. > } > > The address component is really simple: > > public class AddressComponent extends UIInput > { > private String address; > > @Override > public void encodeBegin(FacesContext context) throws IOException > { > ResponseWriter writer = context.getResponseWriter(); > writer.startElement("label", this); > writer.write("test custom component: " + address); > writer.endElement("label"); > writer.flush(); > } > > ... // other methods. > } > > And in the JSP I have: > > <cpc:address value="#{backendBean.address}"/> > > Now when I try to change the backendBean.address property from String to > an > Address object (data model object), there are two issues. > > 1. In the AddressTag class the following line: > > ValueBinding binding = application.createValueBinding(address); > > Only seems to allow a String object, and not a generic Object. > > 2. Assuming I remove those lines of code, I get > jsp.error.beans.property.conversion error. > > Now I've also tried to add the <deferred-value> to the tld definition (I > have to admit I don't yet understand what this property does), but that > hasn't helped. > > You're assistance is greatly appreciated as I've already wracked my brain > enough on this issue! I'm just trying to send the data model object to the > custom component because we're continuing to render it over and over and > over on many screens in a special format. > > Regards, > Steph > > -- View this message in context: http://www.nabble.com/How-to-create-a-custom-component-with-a-non-string-data-model-tf2922326.html#a8275636 Sent from the MyFaces - Users mailing list archive at Nabble.com.