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