Eu estou fazendo alguns testes com jsf 2.0 e ajax
por ex. tenho um bean.
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean(name = "user")
@SessionScoped
public class User {
Boolean isStudent = false;
public Boolean getIsStudent() {
return isStudent;
}
public void setIsStudent(Boolean isStudent) {
this.isStudent = isStudent;
}
}
e uma página index.xhtml
...
<h:body>
<h:form id="form1" prependId="false">
<h:outputScript name="jsf.js" library="javax.faces" target="head"/>
User is a student?
<br/>
<h:outputText id="teste" value="#{user.isStudent}" />
<br/>
<h:selectBooleanCheckbox id="sbc" value="#{user.isStudent}" onclick="jsf.ajax.request(this, event, {execute: this.id, render: 'teste'});"/>
</h:form>
</h:body>
...
Até aqui está tudo bem, a página exibe uma pegunta " User is a student?" e com selectBooleanCheckbox é selecionada a resposta exibindo true ou false sem precisar dar reload na página.
Como eu faço para omitir ou renderizar um componente sem precisar ficar dando reload na página?
tentei chamar o valor boleano no atributo rendered="#{user.isStudent}" , mas ele não funcionao como no value="#{user.isStudent}" que dependendo da marcação no selectBooleanCheckbox ele exibe true ou false.
Antes no jsf1.2 eu usava Richfaces e sei que existe muitas soluções para esse problema nesses faces da vida. Mas queria a solução usando os recursos do jsf2.o e sua api.