[JSF] Inserindo dados em um dataTable

Pessoal

Tenho esses 2 campos na minha tela: Item e quantidade.
Quero saber como faco p inserir esse 2 valores em um dataTable…
Nao estou falando p inserir no banco e depois listar no dataTable. Pq depois de inserido no dataTable, eu vou ter q jogar os valores no banco de uma so vez.
A parte de jogar no banco eu acho q eu me viro, o q eu preciso agora eh de como jogar no dataTable.
Vou ter q colocar os dados em um array p depois jogar esses dados no banco ? N tenho ideia de como fazer isso.
Vou tentar desenhar mais ou menos o q eu preciso…

Item:_____ Quantidade:____ [adicionar]

DataTable

Item Quantidade
x 1
f 2
r 3

[Cadastrar no banco]

Ate agora nao achei nenhum exemplo especifico p isso… To empacado nisso.

Obrigado :slight_smile:

Você precisa inserir esses valores na lista( arraylist, collection, a sua escolha, dependendo do que for mais apropriado para o caso) que será usado como fonte do dados para a datatable( atributo value ).

Talvez ajude: http://jamacedo.wordpress.com/category/java/java-server-faces/prime-faces/

Se você quiser adicionar tudo de uma vez, mantenha um escopo de conversação e ao invés de inserir no banco toda vez vai adicionando na lista (Collection) depois itere a lista adicionando os valores dela.

Muito obrigado pela ajuda… Esse exemplo q vc postou vai me ajudar muito.
Quando eu concluir ou tiver duvida eu posto aqui :slight_smile:

[quote=jaziel.rc]Você precisa inserir esses valores na lista( arraylist, collection, a sua escolha, dependendo do que for mais apropriado para o caso) que será usado como fonte do dados para a datatable( atributo value ).
[/quote]

Meu querido, vc tem algum exemplo do q vc acabou de falar ? Entendi como eh q tem q ser feito, mas com um exemplo ficaria mais facil :slight_smile:

Olha eu aqui de novo, rs…

Implementei a classe q fica o dataTable + oagina jsf… Qnd eu vou abrir a pagina da esse erro aqui:

java.lang.IllegalArgumentException

java.lang.IllegalArgumentException
at javax.faces.component.UIData.setValueExpression(UIData.java:626)
at com.sun.faces.facelets.tag.jsf.ComponentRule$ValueExpressionMetadata.applyMetadata(ComponentRule.java:104)
at com.sun.faces.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:77)
at javax.faces.view.facelets.MetaTagHandler.setAttributes(MetaTagHandler.java:125)
at javax.faces.view.facelets.DelegatingMetaTagHandler.setAttributes(DelegatingMetaTagHandler.java:96)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.doNewComponentActions(ComponentTagHandlerDelegateImpl.java:345)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:146)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:94)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:131)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:162)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
at com.sun.faces.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:99)
at com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:174)
at com.sun.faces.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:392)
at com.sun.faces.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:363)
at com.sun.faces.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:104)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:94)
at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:131)
at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:162)
at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:94)
at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:89)
at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:94)
at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:79)
at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:304)
at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:363)
at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:342)
at com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:196)
at com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:151)
at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:89)
at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:79)
at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:148)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:734)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:96)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at requisicao.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:32)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:344)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:110)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:98)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:95)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:55)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:36)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:150)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

Classe:

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean(name = "tabelaNovaRequisicao")
@RequestScoped
public class TabelaNovaRequisicao {
	
	private List<TabelaNovaRequisicao>lista;
	private String NovoItem;
	private int quantidade;
	
	public String getNovoItem() {
		return NovoItem;
	}
	public void setNovoItem(String novoItem) {
		NovoItem = novoItem;
	}
	public int getQuantidade() {
		return quantidade;
	}
	public void setQuantidade(int quantidade) {
		this.quantidade = quantidade;
	}
	
	public TabelaNovaRequisicao() {  
	        lista = new ArrayList<TabelaNovaRequisicao>();  
	    }  

	public List<TabelaNovaRequisicao> listar() {  
	        return this.listar();  
	    }  
	  
    public String insere() {  
        lista.add(this);  
        System.out.println(TabelaNovaRequisicao.this.getLista());
        return "sucesso";  
    
    }
	public List<TabelaNovaRequisicao> getLista() {
		return lista;
	}
	public void setLista(List<TabelaNovaRequisicao> lista) {
		this.lista = lista;
	}  

	

}

Pagina:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">

<ui:composition template="/templates/interna.xhtml">
	<ui:define name="titulo">
Nova Requisição
</ui:define>
	<ui:define name="corpo">
		<h:form id="cadastro">
			<h:messages />
			<br />


			<h:outputText value="Item:" />  
				&nbsp;
				&nbsp;
        		<h:selectOneMenu id="selecioneitem" value="#{itemBean.itemm}">
				<f:selectItem itemLabel="Selecione" itemValue="" />
				<f:selectItems value="#{itemBean.itens}" var="itens"
					itemValue="#{itens}" itemLabel="#{itens}" />
			</h:selectOneMenu>
			<h:outputLabel value="Quantidade:" for="qntsoli" />
			<h:inputText id="qntsoli" label="Quantidade"
				value="#{requisicaoBean.qntSoli}" required="true" />
					&nbsp;
					&nbsp;
				<h:commandButton action="#{tabelaNovaRequisicao.insere}"
				value="Adicionar" />
			<br />
			<br />
			<br />
			<br />
			<h:dataTable var="#{tabelaNovaRequisicao.lista}" value="tabelaNovaRequisicao" rules="rows" cellpadding="5">
				<h:column>
					<f:facet name="header">Item</f:facet>
					<h:outputText value="#{tabelaNovaRequisicao.novoItem}" />
				</h:column>
				<h:column>
					<f:facet name="header">Quantidade</f:facet>
					<h:outputText value="#{tabelaNovaRequisicao.quantidade}" />
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="Excluir" />
					</f:facet>
					<h:outputText />
				</h:column>
			</h:dataTable>
			<br />
			<br />
			<br />
			<br />
			<h:commandButton action="#{requisicaoBean.salvar}" value="Salvar" />

		</h:form>
	</ui:define>
</ui:composition>
</html>

Ñ sei o q ta acontecendo de errado ¬¬’