Atualizar dados dataTable apos reRender - JSF1.2 + RichFaces - Resolvido

1 resposta
C

Olá pessoal,

estou tendo o seguinte problema…tenho um formulario com um campo texto (h:inputText) e um botao (a4j:commandButton). Quando aciono o botao eu adiciono a palavra em uma lista atributo do Bean (escopo session) . Notei que a palavra eh adicionado na List, o formulario eh renderizado, mas as informacoes nao sao atualizadas no dataTable. Os dados sao somente atualizados apos o segundo clique no botao.

Eu preciso executar algum comando atualizar a lista na renderização?

Segue meu código para analise:

<a4j:form id=“palavraForm” ajaxSubmit=“true”>

<a>a4j:region</a>

<h:outputText value=“Palavra-chave:”/>


<h:inputText id=“palavraChave” size=“20” value="#{DocumentoBean.palavraChave}"/>

<a4j:commandButton id=“adicionarPalavraBt” value=" + “>

<a4j:support event=“onclick” actionListener=”#{DocumentoBean.adicionarPalavraChave}"

reRender=“out,palavraChave” ajaxSingle=“true”/>

</a4j:commandButton>
<a4j:outputPanel id=“out” rendered=“true”>

<h:dataTable id=“palavrasChave” var=“dataItem” value="#{DocumentoBean.adicionarPalavraChave}">

<h:column><h:outputText value="#{dataItem}"/></h:column>

</h:dataTable>

</a4j:outputPanel>

</a4j:region>

</a4j:form>

Código do bean (session escopo )

public void adicionarPalavraChave(ActionEvent event) {

palavrasChave.add(this.palavraChave);

this.palavraChave = “”;

}

obrigada pela ajuda!

1 Resposta

C

Olá pessoal,

consegui resolver o problema! Eu estava fazendo confusao na hora de utilizar o a4j:commandButton.
Segue abaixo o código corrigido:

<a4j:region>
                                
                                    <h:outputText styleClass="campoForm" value="Palavras-chave"/><br/>
                                    <h:outputText styleClass="campoForm" value="Adicionar:  "/><h:inputText id="palavraChave" size="20" value="#{DocumentoBean.palavraChave}"/>
                                    <a4j:commandButton id="adicionarPalavraBt" value=" + "
                                    action="#{DocumentoBean.adicionarPalavraChave}" reRender="out,palavraChave">
                                    </a4j:commandButton>
                               
                               <a4j:outputPanel id="out" rendered="true" ajaxRendered="true" >
                                    <h:dataTable id="palavrasChave" var="dataItem" value="#{DocumentoBean.palavrasChave}">
                                        <h:column><h:outputText value="#{dataItem}"/></h:column>
                                    </h:dataTable>
                                </a4j:outputPanel>
                                
                                
                                </a4j:region>

[]'s

Criado 19 de junho de 2009
Ultima resposta 22 de jun. de 2009
Respostas 1
Participantes 1