opa!
galera, como posso fazer para montar um formulario dinamico e o JSF entender os valores e os campos no momento de erro do binding
tenho um select
<select id="teste" onchange="mostra(this.value)">
<option id="1">Cheque</option>
<option id="2">Cartão</option>
</select>
tipo se for cartão tem que aparecer alguns campos, e se for cheque outros campos
alguem saberia como fazer isso
obrigado
Coloque os campos de cada tipo em um outputpainel diferente, e use a propriedade rendered="" para mostrar 1 ou outro de acordo com o valor do seu combo.
foi exatamente isso que fiz, não tão exatamente…
fiz alterando o display de uma div
mas ai o biding não vai funcionar, ou vai?
teria como postar um exemplo?
abraço
Você está usando RichFaces?
Sim estou usando o RichFaces
[code]
<h:selectOneMenu id=“pagamento” value="#{seuBean.tipoPagto}">
<f:selectItem value=“1” label=“Cheque”/>
<f:selectItem value=“2” label=“Cartao”/>
<a4j:support ajaxSingle=“true” event=“onchange” reRender=“painel1,painel2”/>
</h:selectOneMenu>
<h:panelGrid id=“painel1” styleClass=“layoutPagina” rendered="#{seuBean.tipoPagto eq 1}">
…
…
…
</h:panelGrid>
<h:panelGrid id=“painel2” styleClass=“layoutPagina” rendered="#{seuBean.tipoPagto eq 2}">
…
…
…
</h:panelGrid>[/code]
tem algo errado aqui
<fieldset>
<legend>Pagamento</legend>
<h:outputLabel for="pagamento" value="Pagamento" />
<h:selectOneMenu required="false" value="#{controleVenda.formaPagamento}" id="pagamento">
<f:selectItems value="#{controleVenda.listaFormaPagamento}" />
<f:converter converterId="br.com.ternet.cartao.bean.FormaPagamentoBean" />
<a4j:support ajaxSingle="true" event="onchange" reRender="painel1,painel2"/>
</h:selectOneMenu>
</fieldset>
<h:panelGrid id="painel1" styleClass="layoutPagina" rendered="#{controleVenda.formaPagamento.detalhe eq 2}">
<h:column>
<fieldset id="det">
<legend>Detalhes Pagamento</legend>
<h:outputLabel for="nroCartao" value="Número Cartão" />
<h:inputText id="nroCartao" value="#{controleVenda.numeroCartao}" maxlength="20" />
<h:outputLabel for="nroTransacao" value="Número Transação" />
<h:inputText id="nroTransacao" value="#{controleVenda.numeroTransacao}" maxlength="20" />
<h:outputLabel for="bandeira" value="Bandeira" />
<h:inputText id="bandeira" value="#{controleVenda.bandeira}" maxlength="20" />
</fieldset>
</h:column>
</h:panelGrid>
<h:panelGrid id="painel2" styleClass="layoutPagina" rendered="#{controleVenda.formaPagamento.detalhe eq 1}">
<h:column>
<fieldset id="det">
<legend>Detalhes Pagamento</legend>
<h:outputLabel for="banco" value="Número Banco" />
<h:inputText id="banco" value="#{controleVenda.numeroBanco}" maxlength="5" />
<h:outputLabel for="agencia" value="Número Agência" />
<h:inputText id="agencia" value="#{controleVenda.numeroAgencia}" maxlength="10" />
<h:outputLabel for="conta" value="Número Conta" />
<h:inputText id="conta" value="#{controleVenda.numeroConta}" maxlength="20" />
<h:outputLabel for="c1" value="Número C1" />
<h:inputText id="c1" value="#{controleVenda.c1}" maxlength="5" />
<h:outputLabel for="c2" value="Número C2" />
<h:inputText id="c2" value="#{controleVenda.c2}" maxlength="5" />
<h:outputLabel for="c3" value="Número C3" />
<h:inputText id="c3" value="#{controleVenda.c3}" maxlength="5" />
<h:outputLabel for="titular" value="Nome Titular *" />
<h:inputText id="titular" value="#{controleVenda.nomeTitular}" maxlength="120" />
<h:outputLabel for="cpfTitular" value="CPF Titular *" />
<h:inputText id="cpfTitular" value="#{controleVenda.cpfTitular}" maxlength="20" />
<p>* Preencha somente se o cheque for de <strong>terceiros</strong></p>
</fieldset>
</h:column>
</h:panelGrid>
ele não esta exibindo o que deveria, ou melhor num exibe nada
Aqui vc colocou:
<h:selectOneMenu required="false" value="#{controleVenda.formaPagamento}" id="pagamento">
<f:selectItems value="#{controleVenda.listaFormaPagamento}" />
<f:converter converterId="br.com.ternet.cartao.bean.FormaPagamentoBean" />
<a4j:support ajaxSingle="true" event="onchange" reRender="painel1,painel2"/>
</h:selectOneMenu>
e é
<h:selectOneMenu required="false" value="#{controleVenda.formaPagamento.detalhe}" id="pagamento">
fiz e num deu nada…
ele posta via ajax, mas não exibe o resultado na página
o que pode ser
quando ele faz o submit do formulario ele volta a tela que deveria estar
o que pode ser?