Bom, estou com uma probleminha é o seguinte:
- Quando faço uma consulta na minha view atraves de 2 datas e o nome de funcionário, até ai ele mostra minha consulta no DataTable, só que caso eu queira excluir um objeto através da consulta ele deleta mais não atualiza aquela consulta, só se eu clicar no consultar novamente para mostrar novamente as informações.
alguém poderia me dar uma dica?
posta a página e o managedbean
Olá Dayson_Rodrigues!
Eu ñ sei como esta a tua pagina, acredito q deves ter uma tag <h:form> ou outra tag com ID (Exemplo: <h:form id=“idForm”> ).
Podes usar o AJAX para actualizar a pagina ou pequenos blocos da tua pagina utilizando o seguinte:
<p:ajax update=“idForm” />
Seria melhor Adicionar a Pagina para melhor ajuda.
Ao Tentar excluir ele monstra uma Mensagem que coloquei dentro do meu try. Mais não consegue excluir. Segue meu código.
OBS:coloquei uma caixa de diálogo, mais não está aparecendo na hora que clico em excluir alguém pode me ajudar nisso aí também.
Meu DAO
@SuppressWarnings(“unchecked”)
@Override
public void excluirServico(Date dataInicio, Date dataFim, Funcionario funcionario) {
Session session = HibernateConnection.getFactorySession();
List<Servico> servicos = new ArrayList<Servico>();
servicos = session.createCriteria(Servico.class)
.add(Restrictions.between("data", dataInicio, dataFim))
.add(Restrictions.eq("funcionario.codigoFunc", funcionario.getCodigoFunc())).list();
for (Servico serv : servicos){
session.delete(serv);
}
}
Regra de Negócio
public void excluir(Agendamento agendamento) throws RegraNegocioException {
try {
agendamentos.excluir(agendamento);
} catch (Exception e) {
e.printStackTrace();
throw new RegraNegocioException("Agendamento não pode ser Excluido");
}
}
ManagedBean
public void excluirServicos() throws RegraNegocioException {
try{
GestaoServicos gestaoServicos = new GestaoServicos(repositorio.getServico());
gestaoServicos.excluirServico(dataInicio, dataFim, funcionario);
MensagemUtil.AdicionaMensagem(FacesMessage.SEVERITY_INFO, "Serviço excluido com sucesso!!!");
inicializar();
}
catch(Exception e){
e.printStackTrace();
}
}
View
<ui:composition template="/template/layoutpadrao.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:componentevalor="http://java.sun.com/jsf/composite/componetesStudio"
xmlns:componentedata=“http://java.sun.com/jsf/composite/componetesStudio”>
Adicionando biblioteca de compononete que criei
<ui:define name="titulo"> consulta serviço </ui:define>
<h:outputStylesheet library="css" name="sistema.css" />
<ui:define name="Botao">
<h:form>
<ui:include src="/template/layoutCabecalho.xhtml" />
</h:form>
</ui:define>
<ui:define name="corpo">
<h:form>
<br />
<br />
<p:growl closable="true" />
<p:accordionPanel> <p:tab title=" Excluir Serviço">
<h:panelGrid columns="2" id="panelConsultaServicoD">
<p:outputLabel value="Data" for="data9"/>
<h:panelGroup>
<p:calendar value="#{consultaServico.dataInicio}" pattern="dd/MM/yyyy" id="data9"
size="9" locale="pt" effect="fold"/>
<p:outputLabel value=" ate " for ="ate9"/>
<p:calendar value="#{consultaServico.dataFim}" pattern="dd/MM/yyyy" size="9"
locale="pt" effect="fold" id="ate9"/>
</h:panelGroup>
<p:outputLabel value="Funcionario" for="funcio9" />
<p:selectOneMenu id="funcio9" value="#{consultaServico.funcionario}"
label="funcionario">
<f:selectItem noSelectionOption="true" itemLabel="Selecione o Funcionario"/>
<f:selectItems value="#{cadastroServico.listaFuncionario}" var="funcionario"
itemLabel="#{funcionario.funcNome}" itemValue="#{funcionario}"/>
</p:selectOneMenu>
<p:outputLabel/>
<h:panelGroup>
<p:outputLabel />
<p:commandButton value="excluir" action="#{consultaServico.excluirServicos}" icon="ui-icon-trash" update="@form" ajax="false"/>
</h:panelGroup>
</h:panelGrid>
</p:tab>
</p:accordionPanel>
<br/>
<p:accordionPanel>
<p:tab title="Base de Dados">
<p:dataTable border="1" value="#{consultaServico.listServico}"
var="obj" width="100%" styleClass="cabecalho"
emptyMessage="Nenhum serviço encontrado" id="tableservico">
<f:facet name="header"> Controle de Serviços de Funcionários</f:facet>
<p:column headerText="Cliente" sortBy="#{obj.nome}" width="200">
<div style="text-align: center;">
<p:outputLabel value="#{obj.nome}" id="campo_nome" />
</div>
</p:column>
<p:column headerText="Descrição" width="30%">
<div style="text-align: center;">
<p:outputLabel value="#{obj.descricao}" id="campo_descricao"/>
</div>
</p:column>
<p:column headerText="Valor" sortBy="#{obj.valor}" width="100" >
<div style="text-align: center;">
<componentevalor:outputcurrency value="#{obj.valor}" id="campo_valor" />
</div>
</p:column>
<p:column headerText="Data" sortBy="#{obj.data}" width="17%">
<div style="text-align: center;">
<componentedata:outputData valor="#{obj.data}" id="campo_data"/>
</div>
</p:column>
<p:column headerText="Funcionario" sortBy="#{obj.funcionario.funcNome}" width="10%">
<div style="text-align: center;">
<h:outputLabel value="#{obj.funcionario.funcNome}" id="campo_funcionario"/>
</div>
</p:column>
<p:column headerText="Alterar" width="70">
<div style="text-align: center;">
<p:button outcome="cadastroservico" icon="ui-icon-pencil">
<f:param name="alteracao" value="#{obj.codigo}" />
</p:button>
</div>
</p:column>
<p:column headerText="Excluir" width="70">
<div style="text-align: center;">
<p:commandButton action="#{consultaServico.excluir}"
icon="ui-icon-trash" update="@form">
<f:setPropertyActionListener value="#{obj}"
target="#{consultaServico.servicoSelecionado}" />
<p:confirm header="Exclusão de Serviço"
message="Deseja excluir este serviço selecionado?"
icon="ui-icon-alert" />
</p:commandButton>
</div>
</p:column>
</p:dataTable>
</p:tab>
</p:accordionPanel>
<p:confirmDialog global="true">
<p:commandButton value="sim" styleClass="ui-confirmdialog-yes" icon="ui-icon-check"/>
<p:button value="não" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
</h:form>
</ui:define>
</ui:composition>
Poe ai o metodo excluir do objeto agendamentos. Dele que deve estar estourando alguma exception.
Pior que não cai em nenhuma Exceção
coloquei no Debug, e ele mostra no console.
Hibernate:
select
funcionari0_.codigoFunc as codigoFu1_1_0_,
funcionari0_.funcNome as funcNome2_1_0_
from
funcionario funcionari0_
where
funcionari0_.codigoFunc=?
Hibernate:
select
this_.codigo as codigo1_2_1_,
this_.data as data2_2_1_,
this_.descricao as descrica3_2_1_,
this_.codigo_funcionario as codigo_f6_2_1_,
this_.nome as nome4_2_1_,
this_.valor as valor5_2_1_,
funcionari2_.codigoFunc as codigoFu1_1_0_,
funcionari2_.funcNome as funcNome2_1_0_
from
servico this_
left outer join
funcionario funcionari2_
on this_.codigo_funcionario=funcionari2_.codigoFunc
where
this_.data between ? and ?
and this_.codigo_funcionario=?
Hibernate:
select
this_.codigo as codigo1_2_1_,
this_.data as data2_2_1_,
this_.descricao as descrica3_2_1_,
this_.codigo_funcionario as codigo_f6_2_1_,
this_.nome as nome4_2_1_,
this_.valor as valor5_2_1_,
funcionari2_.codigoFunc as codigoFu1_1_0_,
funcionari2_.funcNome as funcNome2_1_0_
from
servico this_
left outer join
funcionario funcionari2_
on this_.codigo_funcionario=funcionari2_.codigoFunc
order by
this_.codigo_funcionario desc,
this_.valor asc