Então… eu tenho uma tela de cadastro de contrato e nessa tela eu tenho que adicionar as parcelas (com data de vencimento e valor da parcela) do mesmo.
pensei em fazer assim: criar os 2 campos (data Vcto e Valor Parcela) e um botão <a4j:commandButton que chama um método (adicionaParcelas)
no meu Bean que adiciona esse objeto Parcela na lista de parcelas do Contrato…e mostra na tela essa lista de parcelas… certo???sussegado!?
mas minha dúvida é a seguinte: no meu método adicionaParcelas eu tenho que pegar o valor dos 2 campos por parametros?
tem alguma forma de eu dar um submit e ja pegar esse objeto Parcela populado?para fazer isso tenho que usar 2 form??
então galera é isso… quero saber a melhor forma de fazer isso…
valeo
abraco
Olha acho que você poderia montar uma estrutura com um h:dataTable que utilize objetos tipo Parcela.
Algo como:
Pojo:
publicParcela{
privateTimestampvencimento; //Pode usar String se não for trab com datasprivateDoublevalor;//Gettersesetters
}
Bean:
publicSeuBean{
privateList<Parcela>parcelas;//GeteSetpara'parcelas'publicSeuBean(){
parcelas=pesquisaParcelasExistentes(StringparametroDePesquisa);if(parcelas==null)parcelas=newArrayList<Parcela>();}
}
publicStringadicionarParcela(){
parcelas.add(newParcela()); //aqui você adiciona uma linha em brancoreturno"suaTela";}
}
Com isso basta você criar o HTML para listar a sua dataTable utilizando os dados da variável ‘parcelas’
é bem isso… essa parte de mostrar as parcelas esta susse…
mas eu quero saber como é a melhor forma de eu enviar os dados para o método adicionarParcela, entende?
pois se eu der um submit no meu form, vai ir todos os outros campos da tela…
yorgan
Então, de uma olhada no método adicionarParcela. Ele adiciona uma linha em branco, dai para o usuario alterar os valores basta mudar os <h:outputText value="#{parcela.valor}"/> por <h:inputText value="#{parcela.valor}"/>
Com isso, quando você chamar um método Salvar ou algo parecido, ele vai pegar os valores que foram informados na tela. Entendeu?
alves.Felipe
aa não tinha percebido…
pode crer… vou fazer assim…
valeo pela ajuda…
alves.Felipe
cara… funcionou… qdo eu dou o submit fica la os valores das parcelas na lista…
mas como eu adiciono um nova linha com ajax, o valor que eu tinha digitado antes vem apagado… entende?
mas se eu adiciono as linhas depois preencho com os valores ai dou o submit, ai vai certo…
tem alguma dica de como eu adicionar mais uma linha e não apagar o valor da linha anterior?
alves.Felipe
Para o valor continuar na lista depois de clicar no bt adicinar, eu tive que fazer isso no meu método adicionaParcelaPagamento:
publicStringadicionaParcelaPagamento(){HttpServletRequestrequest=FacesUtils.getRequest();Enumerationlista=request.getParameterNames();Objecto=null;Stringposicao="0";while(lista.hasMoreElements()){o=lista.nextElement();if(o.toString().contains("listaParcelas")){String[]params=o.toString().split(":");//posição 2 é a posição da listaposicao=params[2];Pagamentopgto=getParcelasPagamentos().get(Integer.parseInt(posicao));pgto.setValorParcela(Double.parseDouble(request.getParameter(o.toString())));}}parcelasPagamentos.add(newPagamento());return"";}