[jboss-user] [JBoss Portal] - Errors when trying to edit JSF admin pages with custom compo

jl7791 do-not-reply at jboss.com
Fri Mar 28 14:01:06 EDT 2008


I have successfully added an attribute to the user profile object, but I want to be able to pull a list from a database and display it back to the user so that they may select from it.


  | <h:selectOneMenu id="company" value="#{manager.uiUser.attribute.company}" required="#{metadataservice.company.required}">
  |         <f:selectItems value="#{customerManager.customerNames}" />
  |     </h:selectOneMenu>
  | 

Backing bean:


  | package com.mycompany.ui;
  | 
  | import java.util.ArrayList;
  | import java.util.List;
  | 
  | import javax.faces.model.SelectItem;
  | 
  | import com.mycompany.data.Customer;
  | import com.mycompany.service.CustomerManager;
  | 
  | public class CustomerBean {
  | 	
  | 	private List<SelectItem> customerNames;
  | 	
  | 	public void setCustomerNames(List<SelectItem> customerNames) {
  | 		this.customerNames = customerNames;
  | 	}
  | 	
  | 	public List<SelectItem> getCustomerNames() {
  | 		if (customerNames == null) {
  | 			customerNames = initNames();
  | 		}
  | 		
  | 		return customerNames;
  | 	}
  | 	
  | 	private List<SelectItem> initNames() {
  | 		List<SelectItem> custNamesSelectItem = new ArrayList<SelectItem>();
  | 		try {
  | 			List<Customer> customerListFromDb = CustomerManager.getAllCustomers();
  | 			for (Customer c : customerListFromDb) {
  | 				custNamesSelectItem.add(new SelectItem(c.getId(), c.getName()));
  | 			}
  | 		} catch (Exception e) {
  | 			// TODO Auto-generated catch block
  | 			e.printStackTrace();
  | 		}
  | 		
  | 		return custNamesSelectItem;
  | 	}
  | }
  | 

When I access the page, I get the following exception.  What causes this, since I am returning a list of SelectItem objects?


  | Caused by: java.lang.IllegalArgumentException: Collection referenced by UISelectItems with binding '#{customerManager.customerNames}' and Component-Path : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /WEB-INF/jsf/admin/editProfile.xhtml][Class: javax.faces.component.html.HtmlForm,Id: _id26jbpns_2fadmin_2fMembers_2fIdentityAdminPortletWindowsnpbj][Class: javax.faces.component.html.HtmlPanelGrid,Id: _id43jbpns_2fadmin_2fMembers_2fIdentityAdminPortletWindowsnpbj][Class: javax.faces.component.html.HtmlSelectOneMenu,Id: company][Class: javax.faces.component.UISelectItems,Id: _id85jbpns_2fadmin_2fMembers_2fIdentityAdminPortletWindowsnpbj]} does not contain Objects of type SelectItem
  |         at org.apache.myfaces.shared_impl.util.SelectItemsIterator.next(SelectItemsIterator.java:184)
  |         at org.apache.myfaces.shared_impl.renderkit.RendererUtils.internalGetSelectItemList(RendererUtils.java:451)
  |         at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getSelectItemList(RendererUtils.java:428)
  |         at org.apache.myfaces.shared_impl.renderkit.html.HtmlRendererUtils.internalRenderSelect(HtmlRendererUtils.java:294)
  |         at org.apache.myfaces.shared_impl.renderkit.html.HtmlRendererUtils.renderMenu(HtmlRendererUtils.java:267)
  |         at org.apache.myfaces.shared_impl.renderkit.html.HtmlMenuRendererBase.encodeEnd(HtmlMenuRendererBase.java:59)
  |         at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:539)
  |         at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:419)
  |         at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:229)
  |         at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:101)
  |         at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:539)
  |         at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:242)
  |         at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:239)
  |         at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:239)
  |         at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:540)
  |         at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
  |         at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
  |         at org.apache.myfaces.portlet.MyFacesGenericPortlet.facesRender(MyFacesGenericPortlet.java:498)
  |         ... 236 more
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4139738#4139738

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4139738



More information about the jboss-user mailing list