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?
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?
Tente colocar esse atributos que estão vindo vazios como atributos do próprio Page Bean para ver se continuam vindo null.
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.
Va dentro do seu MB e coloca os objetos assim: Objeto obj = new Objeto(); assim este erro não vai ocorrer.
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>
[code]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";
}
}[/code]
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.
O problema foi resolvido colocando <t:saveState value="#{bean.campo1}"/>.