Olá, sou iniciante com JSF 1.2 e richfaces. Em minha aplicação tenho um selectOnMenu com 3 opções, O que quero é escolher somente uma dessas opções e quando isso acontecer fazer aparecer outro componente em tempo de execução, sem carregar a página. Alguém tem alguma idéia?
use o a4j do Richfaces para trabalhar com ajax…
ao selecionar o valor no selecOneMenu, o ajax mudará em seu MB a propriedade rendered, do componente que vc quer mostrar, de false para true!
Blz… estou usando mas não está dando certo: segue meu exemplo
BEAN
[code] private String mostraComple;
public void getMostraCampoComplemento(FacesContext context, UIComponent component, Object value){
String valorConvenio = (String) value;
if(valorConvenio.equals("Sus")){
setMostraComple("mostra");
}
setMostraComple("oculta");
}[/code]
PÁGINA
[color=red]Meu Componente de opção: quando escolher a opção Sus deverá aparecer um outro componente[/color]
<h:panelGrid columns="1">
<h:outputText value="Categoria:" />
<h:selectOneMenu id="categoria" rendered="true"
styleClass="textbox" value="#{agendaCirurgicaController.agendaCirurgica.categoria}"
required="true" requiredMessage="* Campo (Categoria) é obrigatório"
style="color:#FF6600">
<f:selectItem itemValue="" itemLabel="Selecione.." />
<f:selectItem itemValue="Sus" itemLabel="Sus" />
<f:selectItem itemValue="Convenio" itemLabel="Convenio" />
<f:selectItem itemValue="Particular" itemLabel="Particular" />
<a4j:support event="onchange" ajaxSingle="true"
reRender="panelConvenio" actionListener="#{agendaCirurgicaController.mostraCampoComplemento}" />
</h:selectOneMenu>
</h:panelGrid>
[color=red]Esse é o componente que ira aparecer [/color]
[code] <h:panelGrid columns=“1” id=“panelConvenio”>
<h:outputText value=“Convênio:” />
<h:inputText id=“convenio” value="#{agendaCirurgicaController.agendaCirurgica.convenio}" maxlength=“40” required=“true” requiredMessage="* Campo (Convênio) é obrigatório" style=“width: 200px; color:#FF6600”/>
</h:panelGrid>
<h:panelGrid columns="1" id="panelConvenio" rendered="#{agendaCirurgicaController.mostraComple == 'mostra'}" >
<h:outputText value="Complemento:" />
<h:selectOneMenu id="comple" valueChangeListener="#{agendaCirurgicaController.mostraCampoComplemento}"
styleClass="textbox" value="#{agendaCirurgicaController.agendaCirurgica.complemento}"
style="color:#FF6600" validator="#{agendaCirurgicaController.validaComplemento}">
<f:selectItem itemValue="" itemLabel="Selecione.." />
<f:selectItem itemValue="Alta Complexidade" itemLabel="Alta Complexidade" />
<f:selectItem itemValue="SUS Com Complemento" itemLabel="SUS C/ Complemento" />
<f:selectItem itemValue="SUS Sem Complemento" itemLabel="SUS S/ Complemento" />
</h:selectOneMenu>
</h:panelGrid> [/code]