2015-01-27 4 views
0

У меня есть этот диалог:primefaces CommandButton "обновление" не работает

<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> 

И боб:

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); 
} 

CommandButton должен обновлять DataTable. Я только что перешел от Prime 3.5 до 5.1, и среди других проблем, которые мне удалось выяснить, есть этот, который очень раздражает. Он работал над Prime 3.5. Чтобы уточнить, что здесь не так: действие запускается нормально, данные вставлены правильно, но dataTable больше не обновляется. Это тот самый код, который я использовал вчера с Prime 3.5, но теперь, используя Prime 5.1, dataTable больше не обновляется.
Любые идеи? Благодаря

+0

процесс добавления попробовать = '@' этого делать CommandButton –

+0

@ LuísSoares '@ this' по умолчанию. Он должен скорее попытаться обработать фактический текст ввода. @Maverick_Java. Пожалуйста, также покажите свой bean-компонент и укажите «Не работает» - ошибка? Исключение? Что говорит пошаговая отладка? – dognose

+0

не является значением по умолчанию @form? Думаю, я решил это так. Мне также пришлось обновлять с 3.1 до 5.1 –

ответ

0

использование : перед тем идентификатор


Запомнить

если вы сделаете диалоговое

  1. Перед диалоговом старой тег формы должны быть близки
  2. затем диалоговое содержание должны быть помещены в другую форму.
  3. использование: dialogid,: dialogFormId