Bom dia pessoal, estou implementando uma aplicacao onde
tenho uma tabela, e em uma coluna da tabela tem um textfield.Preciso
que ao usuario acionar o botao eu possa recuperar todos os valores das linhas da tabela,principalmente
os textfield.Alguem sabe como?
<richfaces: datatable
13 Respostas
Acredito que você terá que de alguma forma selecionar essa linha da tabela, através de um check box, ou colocando um link na linha, e ao clicar no botão recuperar o id dessa linha selecionada para poder recuperar o registro na base de dados, ArrayList etc…
Mas acho que precisa especificar melhor sua dúvida.
Cara,preciso que ao clicar em um botao que nao esta na tabela, eu consiga pegar os valores de todos os campos das linhas da tabela da pagina principalmente a do textfield.Exemplo uma tabela com codigo,produto,preco o usuario altera o preco clica no botao e o sistema joga as informacoes alteradas no banco, lembrando que a varios produtos na tabela e ele nao pode ter um botao a cada linha.
Eai senhores,sera que alguem pode dar um ajuda neste caso.
cara… vc quer que o usuário va adicionando os produtos nessa tabela… é isso?
ou vai ter uma tabela ja com dados e apenas alguns campos habilitados para ele digitar.?
sim cara,a tabela tera 4 colunas,sendo que a quarta coluna tera um textfield onde o usuario, digita o preço do produto,pois o sistema
é de cotação de produtos,e esta tela e a do fornecedor que digita os preços.
é bem provavel que vc esta passado uma lista de objetos…(por ex: ItemCotacao)…
mesmo vc só digitando no campo e depois dar o submit, nao esta populando o campo do objeto ItemCotacao?
se nao tiver…então pega por parametros… usando o getParameterNames();
ai verifica qual tem o id da tabela… ai vai ter que pegar os dados pela posição da tabela… entende?
da uma olhada… ve se ajuda
O cara não ajudou muito não.Preciso entregar isto e só falta
este processo.Sou novato em desenvolvimento web, se alguem tem um exemplo ou solução agradeço.
ja fez?
posta seu codigo ai
Mano ainda não implementei não, mas é que este mesmo projeto quando tentei implementar com visual web jsf(terrivél) de pau nesta etapa que é a final.
Também to com outro problema aqui talvez este seja mais tranquilo, é que meu combobox passa só nulo para o manager bean,vou postar os codigos do bean e do jsp para você e a galera olhar.Valeu pela ajuda cara,pois eu to quase desanimando .
//jsp
<%--
Document : CadFornecedor
Created on : 24/01/2010, 00:04:24
Author : suporte
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib prefix="rich" uri="http://richfaces.ajax4jsf.org/rich" %>
<%@ taglib prefix="a4j" uri="http://richfaces.org/a4j"%>
<%@taglib prefix="easy" uri="http://easyfaces.com.br/easyfaces" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Cadastro Forn..</title>
</head>
<body>
<h:form id="form1">
<h:graphicImage height="70" width="1280" url="/superior.gif" />
<br>
<br>
<br><h:messages/>
<br>
<br>
<fieldset>
<legend ><strong>Cadastro Fornecedor</strong></legend>
<h:panelGrid columns="2">
<h:outputLabel for="tfcodprod" value="Codigo"/>
<h:inputText id="tfcodprod" value="0" disabled="true" size="10"/>
<h:outputLabel for="tfrazaosocial" value="Razao Social"/>
<h:inputText id="tfrazaosocial" autocomplete="true" maxlength="60" size="80" value="#{ControleForn.fornecedor.nome_Fornecedor}" required="true"/>
<h:outputLabel for="tfcontato" value="Contato"/>
<h:inputText id="tfcontato" autocomplete="true" maxlength="20" size="50" required="true" value="#{ControleForn.fornecedor.contato_Fornecedor}" />
Fone
<easy:inputPhone useMask="true" required="true" value="#{ControleForn.fornecedor.fone_Fornecedor}" />
<h:outputLabel for="tfendereco" value="Endereco"/>
<h:inputText id="tfendereco" autocomplete="true" maxlength="60" size="100" value="#{ControleForn.fornecedor.endereco_Fornecedor}" required="true"/>
<h:outputLabel for="listacid" value="Cidades MG"/>
<rich:comboBox id="listacid" value="#{ControleForn.cidade}" suggestionValues="#{ControleForn.listaItens}" directInputSuggestions="true" binding="#{ControleForn.cidade}" defaultLabel="esclha a cidade">
<a4j:support event="onchange" action="#{ControleForn.cod_Cid}" immediate="true"/>
</rich:comboBox>
Email
<easy:inputEmail validatorMessage="email invalido" value="#{ControleForn.fornecedor.email_Fornecedor}"/>
</h:panelGrid>
<h:commandButton value="Cadastrar" action="#{ControleForn.cadForn}"/>
<a4j:commandButton value="Limpar" immediate="true" action="#{ControleForn.limparTfForn}" styleClass="botoes"/>
</fieldset>
</h:form>
</body>
</html>
</f:view>
//manager bean
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.oriom.CotacaoWeb.controle;
import br.com.oriom.CotacaoWeb.auxiliar.Messagens_Tela;
import br.com.oriom.CotacaoWeb.dao.DaoAuxiliar;
import br.com.oriom.CotacaoWeb.dao.Dao_Fornecedor;
import br.com.oriom.CotacaoWeb.dao.Dao_FornecedorImp;
import br.com.oriom.bean.BeanCidade;
import br.com.oriom.bean.Fornecedor_Bean;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
/**
*
* @author suporte
*/
public class ControleFornecedor {
private Fornecedor_Bean fornecedor;
private List<Fornecedor_Bean> listaForn;
private List<String> listaItens;
private String cidade;
public ControleFornecedor() {
setFornecedor(new Fornecedor_Bean());
}
@Override
public String toString() {
return this.cidade;
}
public List listaCidades() {
Messagens_Tela info = new Messagens_Tela();
SelectItem item;
try {
DaoAuxiliar daoAux = new DaoAuxiliar();
setListaItens(daoAux.retornaCidade());
} catch (SQLException ex) {
info.msgTela(ex.getMessage());
} catch (ClassNotFoundException ex) {
info.msgTela(ex.getMessage());
} catch (Exception ex) {
info.msgTela(ex.getMessage());
}
return getListaItens();
}
public String novoForn() {
Messagens_Tela info = new Messagens_Tela();
try {
DaoAuxiliar daoAux = new DaoAuxiliar();
setListaItens(daoAux.retornaCidade());
} catch (SQLException ex) {
info.msgTela(ex.getMessage());
} catch (ClassNotFoundException ex) {
info.msgTela(ex.getMessage());
} catch (Exception ex) {
info.msgTela(ex.getMessage());
}
return "cadforn";
}
public int cod_Cid() {
Messagens_Tela info = new Messagens_Tela();
System.out.println("cheguei" + getCidade().toString());
try {
DaoAuxiliar daoA = new DaoAuxiliar();
getFornecedor().setCodigo_cidade(daoA.codCid(getCidade()));
System.out.println(getFornecedor().getCodigo_cidade());
} catch (SQLException ex) {
info.msgTela(ex.getMessage());
} catch (ClassNotFoundException ex) {
info.msgTela(ex.getMessage());
} catch (Exception ex) {
info.msgTela(ex.getMessage());
}
return getFornecedor().getCodigo_cidade();
}
public String cadForn() {
Messagens_Tela info = new Messagens_Tela();
try {
System.out.println(getCidade());
Dao_Fornecedor daof = new Dao_FornecedorImp();
info.msgTela(daof.cadastraFornecedor(getFornecedor()));
} catch (SQLException ex) {
info.msgTela(ex.getMessage());
} catch (ClassNotFoundException ex) {
info.msgTela(ex.getMessage());
} catch (Exception ex) {
info.msgTela(ex.getMessage());
}
limparTfForn();
return "cadforn";
}
public String deletaForn() {
Messagens_Tela info = new Messagens_Tela();
try {
Dao_Fornecedor daoF = new Dao_FornecedorImp();
info.msgTela(daoF.deletaFornecedor(getFornecedor()));
} catch (SQLException ex) {
info.msgTela(ex.getMessage());
} catch (Exception ex) {
info.msgTela(ex.getMessage());
}
return "pesqforn";
}
public String buscaForn() {
return "pesqforn";
}
public List<Fornecedor_Bean> pesqFornecedor() {
Messagens_Tela info = new Messagens_Tela();
try {
Dao_Fornecedor daoF = new Dao_FornecedorImp();
setListaForn(daoF.forneID(getFornecedor()));
} catch (SQLException ex) {
info.msgTela(ex.getMessage());
} catch (ClassNotFoundException ex) {
info.msgTela(ex.getMessage());
} catch (Exception ex) {
info.msgTela(ex.getMessage());
}
return getListaForn();
}
public String updateForn() {
return "upforn";
}
public String atuForn() {
return "pesqforn";
}
public String limparTfForn() {
setFornecedor(new Fornecedor_Bean());
return "cadforn";
}
/**
* @return the fornecedor
*/
public Fornecedor_Bean getFornecedor() {
return fornecedor;
}
/**
* @param fornecedor the fornecedor to set
*/
public void setFornecedor(Fornecedor_Bean fornecedor) {
this.fornecedor = fornecedor;
}
/**
* @return the listaForn
*/
public List<Fornecedor_Bean> getListaForn() {
return listaForn;
}
/**
* @param listaForn the listaForn to set
*/
public void setListaForn(List<Fornecedor_Bean> listaForn) {
this.listaForn = listaForn;
}
/**
* @return the cidade
*/
public String getCidade() {
return cidade;
}
/**
* @param cidade the cidade to set
*/
public void setCidade(String cidade) {
this.cidade = cidade;
}
/**
* @return the listaItens
*/
public List<String> getListaItens() {
return listaItens;
}
/**
* @param listaItens the listaItens to set
*/
public void setListaItens(List<String> listaItens) {
this.listaItens = listaItens;
}
}
//trecho da dao que popula lista
public List<String> retornaCidade() throws SQLException{
Connection conex = null;
PreparedStatement pst = null;
ResultSet rst = null;
String query = "SELECT * FROM cidades";
conex = this.conn;
try {
pst = conex.prepareStatement(query);
rst = pst.executeQuery();
List<String> lista = new ArrayList<String>();
while (rst.next()) {
String cidade = rst.getString(2);
lista.add( cidade);
}
return lista;
} finally {
Fabrica_Conexao.close(rst, pst, conex);
}
}
tenta trocar essa parte:
<rich:comboBox id="listacid" value="#{ControleForn.cidade}" suggestionValues="#{ControleForn.listaItens}" directInputSuggestions="true" binding="#{ControleForn.cidade}" defaultLabel="esclha a cidade">
<a4j:support event="onchange" action="#{ControleForn.cod_Cid}" immediate="true"/>
</rich:comboBox>
por essa:
<a4j:region>
<rich:comboBox id="listacid" value="#{ControleForn.cidade}" suggestionValues="#{ControleForn.listaItens}" directInputSuggestions="true" binding="#{ControleForn.cidade}" defaultLabel="esclha a cidade">
<a4j:support event="onchange" action="#{ControleForn.cod_Cid}" ajaxSingle="true"/>
</rich:comboBox>
</a4j:region>
ou ainda usar o <f:selectItems value="#{ControleForn.listaItens}" />
Cara vc conhece e é muito,deu certim.
O galera me entusiamei cedo,agora ta dando erro de conversao,alguem sabe de um material para estudar o rich e o ajax,vi o doc no site mais fala mais sobre o visual.
Caused by: java.lang.IllegalArgumentException: Cannot convert Belo Horizonte of type class java.lang.String to class javax.faces.component.UIComponent