Jsf +rendered

5 respostas
F

eu com um problema usando o rendered

tenho uma div q eu escondo e depois apareco com ela…

mas quando eu apareco com ela…e dou submit na pagina o valor dos campos q estao na div vem null algume tem ideia do q seja?

5 Respostas

afamorim

Tente colocar esse atributos que estão vindo vazios como atributos do próprio Page Bean para ver se continuam vindo null.

rafaelsantini

Estou com esse mesmo tipo de problema. Exemplo:

<t:div rendered="#{bean.mostrar}"> <t:inputText value="#{bean.valor}"/> <t:commandButton value="Testar" action="#{bean.testar}"/> </t:div>

Ao clicar no botão Testar, o método testar do bean não é invocado.

Se o <t:commandButton> for colocado depois do </t:div>, o método testar do bean é invocado, porém a propriedade valor não é atribuída:

<t:div rendered="#{bean.mostrar}"> <t:inputText value="#{bean.valor}"/> </t:div> <t:commandButton value="Testar" action="#{bean.testar}"/>

Neste exemplo, #{bean.mostrar} está retornando true.

thokk

Va dentro do seu MB e coloca os objetos assim: Objeto obj = new Objeto(); assim este erro não vai ocorrer.

rafaelsantini
O problema é: o campo e o botão que são redenrizados com base em uma condição não são submetidos. Exemplo:
<h:messages/>
<h:form>
  <h:inputText value="#{bean.campo1}"/>
  <h:commandButton value="OK"/>
  <h:inputText value="#{bean.campo2}" rendered="#{bean.campo1 != null}"/>
  <h:commandButton value="Testar" action="#{bean.testar}" rendered="#{bean.campo1 != null}"/>
</h:form>
public class Bean {

    private String campo1;

    private String campo2;

    public String getCampo1() {
        return campo1;
    }

    public void setCampo1(String campo1) {
        this.campo1 = campo1;
    }

    public String getCampo2() {
        return campo2;
    }

    public void setCampo2(String campo2) {
        this.campo2 = campo2;
    }

    public void testar() {
        campo2 += "_OK";
    }

}
Ao digitar um conteúdo no campo1 e clicar no botão OK, o campo2 e o botão Testar são apresentados. Porém, ao clicar no botão Testar, o método testar() não é invocado.
rafaelsantini

O problema foi resolvido colocando <t:saveState value="#{bean.campo1}"/>.

Criado 22 de março de 2007
Ultima resposta 21 de jul. de 2009
Respostas 5
Participantes 4