ArrayList de um objeto com JSF

0 respostas
B

Olá Pessoal,

Seguinte tenho um formulario JSF onde tenho várias vezes o mesmo objeto Contact("TypeFone","DDD","Telefone") e quero tornor isso uma ArrayList<Contatc> para meu back bean .....

Meu faces-config está assim:
&lt;faces-config&gt;
	&lt;managed-bean&gt;
		&lt;managed-bean-name&gt;person&lt;/managed-bean-name&gt;
		&lt;managed-bean-class&gt;br.com.meindica.entitybeans.Person&lt;/managed-bean-class&gt;
		&lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;
	&lt;/managed-bean&gt;

	&lt;managed-bean&gt;
		&lt;managed-bean-name&gt;contact&lt;/managed-bean-name&gt;
		&lt;managed-bean-class&gt;br.com.meindica.entitybeans.Contact&lt;/managed-bean-class&gt;
		&lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;
	&lt;/managed-bean&gt;
	
	&lt;managed-bean&gt;
		&lt;managed-bean-name&gt;personBeans&lt;/managed-bean-name&gt;
		&lt;managed-bean-class&gt;br.com.meindica.facesbeans.PersonFacesBean&lt;/managed-bean-class&gt;
		&lt;managed-bean-scope&gt;session&lt;/managed-bean-scope&gt;
		
		&lt;managed-property&gt;
			&lt;property-name&gt;person&lt;/property-name&gt;
			&lt;value&gt;#{person}&lt;/value&gt;
		&lt;/managed-property&gt;
	
		&lt;managed-property&gt;
			&lt;property-name&gt;contact&lt;/property-name&gt;
			&lt;value&gt;#{contact}&lt;/value&gt;
		&lt;/managed-property&gt;
	&lt;/managed-bean&gt;
&lt;/faces-config&gt;

E o meu back bean está assim:

public class PersonFacesBean {
	
	private Person person;
	
	private Address address;
	
	private List&lt;Contact&gt; contact = new ArrayList&lt;Contact&gt;();
	
	private static Logger log;
	
	public PersonFacesBean() {
		log = Logger.getLogger(PersonFacesBean.class);
	}
	
	public String add() {
		try {
			BeanPerson bo = new BeanPerson();
			bo.save( person , address, contact );
			return "success";
		}
		catch (NewUserException userEx){
			log.warn("Erro em: " + userEx.getMessage());
			return "failure";
		}
	}

	public Person getPerson() {
		return person;
	}

	public void setPerson(Person person) {
		this.person = person;
	}

	
	public Address getAddress() {
		return address;
	}

	public void setAddress(Address address) {
		this.address = address;
	}

	public List&lt;Contact&gt; getContact() {
		return contact;
	}

	public void setContact(List&lt;Contact&gt; contact) {
		this.contact = contact;
	}
}

E o meu facelets :

&lt;h:outputLabel value="Telefone: " for="fone" /&gt; 
&lt;h:selectOneMenu value="#{contact.typeFone}"&gt;
	&lt;f:selectItem itemLabel="Residencial" itemValue="residencial" /&gt;
	&lt;f:selectItem itemLabel="Celular" itemValue="celular" /&gt;
	&lt;f:selectItem itemLabel="Comercial" itemValue="comercial" /&gt;
&lt;/h:selectOneMenu&gt;
&lt;h:inputText value="#{contact.prefixFone}" id="prefixFone" size="2" /&gt;
&lt;h:inputText value="#{contact.fone}" id="fone" /&gt; 
&lt;h:message for="fone"/&gt; 
&lt;h:commandButton action="#{personBeans.add}" value="Adicionar" /&gt;

Mas quando envio o formulario ele dá o seguinte erro:

SEVERE: Servlet.service() for servlet Faces Servlet threw exception javax.faces.FacesException: Error performing conversion of value br.com.meindica.entitybeans.Contact@1d7fc31 of type class br.com.meindica.entitybeans.Contact to type interface java.util.List for managed bean personBeans. at com.sun.faces.config.ManagedBeanFactoryImpl.getConvertedValueConsideringPrimitives(ManagedBeanFactoryImpl.java:991) at com.sun.faces.config.ManagedBeanFactoryImpl.setPropertiesIntoBean(ManagedBeanFactoryImpl.java:664) at com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:345) at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:521) at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:83) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53) at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:58) at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:45) at org.apache.el.parser.AstValue.getTarget(AstValue.java:42) at org.apache.el.parser.AstValue.invoke(AstValue.java:127) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:95) at javax.faces.component.UICommand.broadcast(UICommand.java:383) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:450) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:759) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:132) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619)

Como posso resolver esse problema?

Obrigado

Criado 5 de março de 2008
Respostas 0
Participantes 1