为什么保存在Primefaces中的按钮不起作用

时间:2018-10-30 12:56:56

标签: jsf primefaces

我在Primefaces中有一个表单,在此表单中,我有一个数据表和一个对话框,还有一个按钮,用于将信息保存在数据库中。 当我单击按钮时不会发生,但是如果删除数据表和对话框,则可以将信息保存在数据库中。 有人可以帮忙吗?

<h:form id="form">
        <h:panelGrid id="grid" cellpadding="8" columns="2" style="margin-bottom:10px">
           <p:outputLabel for="oid" value="OID:" />
           <p:inputText id="oid" value="#{lancamentoController.lancamento.id}" />

           <p:outputLabel for="dataInicial" value="Data: " />
           <p:calendar id="dataInicial" value="#{lancamentoController.lancamento.dataInicial}" pattern="dd/MM/yyyy"/>
           <p:outputLabel for="dataFinal" value="Data: " />
           <p:calendar id="dataFinal" value="#{lancamentoController.lancamento.dataFinal}" pattern="dd/MM/yyyy"/>

           <p:commandButton ajax="true" update=":form:itemProdutoDialog" oncomplete="PF('itemDialog').show()" icon="ui-icon-plus" title="View"/>
           <p:dataTable id="itens" value="#{lancamentoController.lancamento.itens}" var="item">
                <p:column headerText="Descrição">
                    <h:outputText value="#{item.item.descricao}"/>
                </p:column>
                <p:column headerText="Valor">
                    <h:outputText value="#{item.item.valor}"/>
                </p:column>
                <p:column headerText="Ações">          
                  <p:commandButton actionListener="#{lancamentoController.removerItem(item)}" icon="ui-icon-trash" update="itens @form"/>  
                </p:column>
           </p:dataTable>
           <p:dialog id="dialog" header="Itens" widgetVar="itemDialog" modal="true" showEffect="explode" hideEffect="explode" resizable="false">
                <p:outputPanel id="itemProdutoDialog">
                    <p:panelGrid columns="8">
                        <p:outputLabel for="produtoItem" value="Produto"/>
                        <p:selectOneMenu id="produtoItem" value="#{lancamentoController.item}" filter="true" filterMatchMode="startsWith">
                            <f:selectItem itemValue="" itemLabel="Lista Produto"/> 
                            <f:selectItems value="#{itemController.itens}" var="item"
                                           itemValue="#{item}" itemLabel="#{item.descricao}" /> 
                            <p:message for="item"/>
                        </p:selectOneMenu>                           
                        <p:outputLabel for="valorTotalProduto" value="Valor Total"/>
                        <p:inputNumber id='valorTotalProduto' value="#{lancamentoController.item.valor}" symbolPosition="s" emptyValue="" minValue="0.00" required="true" requiredMessage="O campo Valor Total é obrigatório"/>
                        <p:commandButton value="Add" actionListener="#{lancamentoController.addItem()}" update="@form"/>
                    </p:panelGrid>
                </p:outputPanel>
             </p:dialog>
             <p:outputLabel for="observacao" value="Observação"/>           
             <p:inputTextarea id="observacao" rows="10" cols="50" completeMethod="#{lancamentoController.lancamento.observacao}" queryDelay="750" minQueryLength="4" />
             <p:outputLabel for="valorTotal" value="Valor Total"/>
             <p:inputNumber id='valorTotal' value="#{lancamentoController.lancamento.valorTotal}" symbolPosition="s" emptyValue="" minValue="0.00"/>              
         </h:panelGrid>
         <p:commandButton value="Salvar" action="#{lancamentoController.salvar(lancamentoController.lancamento)}" icon="ui-icon-disk" update="@all"/>
      </h:form> 

Java代码

public void salvar(Lancamento lancamento) {

    System.out.println("SALVAR");
    getDAO().salvar(lancamento);
}

0 个答案:

没有答案