Boa noite,gostaria de tirar uma duvida sobre o rendered.
Eu tenho um combobox com os valores 1,2 e 3.
Queria saber como faço pra quando selecionar a opcao 1 ele renderizar so 1 campo de texto, se escolher a opcao 2 renderizar 2 campos de texto e 3 renderizar 3 campos de texto.
Me ajudem por favor, aguardo a respostas.
Obrigado
Deixa eu ver se entendi.
Você tem 3 campos de texto, mas quer que eles sejam renderizados de acordo com o número selecionado no combobox?
Isso mesmo.
Tá, vamos lá. Tenha em mente de que eu estou pensando que são 3 campos fixos, e a criação deles não é dinâmica (se fosse a solução seria bem diferente).
Você tem os 3 campos de texto, cada um com sua propriedade rendered<h:outputText id="text1" value="Text 1" rendered="#{meuBean.renderizarText1()}"/>
<h:outputText id="text2" value="Text 2" rendered="#{meuBean.renderizarText2()}"/>
<h:outputText id="text3" value="Text 3" rendered="#{meuBean.renderizarText3()}"/>E em algum lugar também tem seu selectOneMenu, supondo também que ele só tem 3 valores<h:selectOneMenu id="select" value="#{meuBean.value}">
<f:selectItem itemValue="1" itemLabel="1" />
<f:selectItem itemValue="2" itemLabel="2" />
<f:selectItem itemValue="3" itemLabel="3" />
<f:ajax event="change" execute="@this" render="text1 text2 text3 select"/>
</h:selectOneMenu>Repare na tag ajax que renderiza os 3 campos sempre que o valor é alterado. Agora o que vai definir se ele aparece ou não é a implementação dos métodos invocados nas tags rendered[code]@ViewScoped
@ManagedBean
public class MeuBean {
private int value;
public boolean renderizarText1(){
return value >= 1;
}
public boolean renderizarText2(){
return value >= 2;
}
public boolean renderizarText3(){
return value == 3;
}
// getters e setters
}[/code] Esse é o jeito mais simples que consigo pensar para resolver isso.
Obrigado vou tentar fazer colocar aqui
Consegui deu certo muito obrigado.
Sem problemas 