简体   繁体   中英

primefaces commandButton “update” not working

I have this dialog:

    <p:dialog 
        id="dlgComment"
        widgetVar="dialogComentario"
        modal="true"
        header="#{messages.comentarios}"
        width="600px"
        resizable="false" showEffect="clip" hideEffect="clip">
        <h:form id="formComentario">
            <p:panelGrid columns="2" style="width: 100%">
                <f:facet name="header">
                    <h:outputText value="#{monitorarEventoControlador.eventoSelecionado.titulo}"/>
                </f:facet>
                <h:outputText value="#{messages.inicio}" />  
                <h:outputText value="#{monitorarEventoControlador.eventoSelecionado.inicio}" />  

                <h:outputText value="#{messages.gravidade}" />  
                <h:outputText value="#{monitorarEventoControlador.eventoSelecionado.gravidade}" />  
            </p:panelGrid>
            <p:dataTable id="tableComentario" var="comentario" value="#{monitorarEventoControlador.eventoSelecionado.getComentariosAsList()}" emptyMessage="#{messages.noRecordsFound}">
                <f:facet name="header">
                    #{messages.comentarios}
                </f:facet>
                <p:column headerText="#{messages.dataHora}"> 
                    <h:outputText value="#{comentario.dataHora}">
                        <f:convertDateTime pattern="dd/MM/yyyy HH:mm" timeZone="#{monitorarEventoControlador.buscaTimeZone()}"/>
                    </h:outputText>
                </p:column>  
                <p:column headerText="#{messages.usuario}"> 
                    <h:outputText value="#{comentario.usuario.orgao.sigla} - #{comentario.usuario.apelido}"/>
                </p:column>  
                <p:column headerText="#{messages.texto}"> 
                    <h:outputText value="#{comentario.texto}" />  
                </p:column>  
            </p:dataTable>
            <p:panelGrid columns="2" style="width: 100%">
                <h:inputText value="#{monitorarEventoControlador.comentarioSelecionado.texto}" maxlength="80"/>
                <p:commandButton value="#{messages.comentar}" actionListener="#{monitorarEventoControlador.adicionarComentario()}" icon="ui-icon-check" update="tableComentario" />
            </p:panelGrid>
        </h:form>
    </p:dialog>

And the bean:

    public void adicionarComentario() {
        comentarioSelecionado.setDataHora(new Date());
        comentarioSelecionado.setEvento(eventoSelecionado);
        comentarioSelecionado.setUsuario(autenticador.getUsuarioCorrente());
        todosOsComentarios.colocar(comentarioSelecionado);
        notificarComentario(comentarioSelecionado);
        eventoSelecionado.getComentarios().add(comentarioSelecionado);
        todosOsEventos.colocar(eventoSelecionado);
        iniciarComentario(eventoSelecionado);
    }

 private void notificarComentario(Comentario comentario) {
    Notificacao n = new Notificacao();
    n.setDataHora(comentario.getDataHora());
    n.setDescricao(DateUtil.dataHoraFormatada(n.getDataHora()) + " - " + comentario.getUsuario().getOrgao().getSigla() + "(" + comentario.getUsuario().getApelido() + "): " + comentario.getTexto());
    n.setComentario(true);
    n.setInforme(comentario.getEvento().getInforme());
    comentario.getEvento().getInforme().getNotificacoes().add(n);
}

public void iniciarComentario(Evento evento) {
    comentarioSelecionado = new Comentario();
    setEventoSelecionado(evento);
}

The commandButton should update a dataTable. I have just moved from Prime 3.5 to 5.1 and among other problems I managed to figure out, there is this one that's realy annoying. It was working on Prime 3.5. To be more specific about what is going wrong here: The action is fired normaly, the data is inserted correctly, but the dataTable is no longer updated. It is the very same code I was using yesterday with Prime 3.5, but now, using Prime 5.1 the dataTable does not refresh anymore.
Any ideas ? Thanks

use : before id


Remember

if you make a dialog

  1. Before dialog old form tag should be close
  2. then dialog content should be placed into another form.
  3. use :dialogid, :dialogFormId

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM