Bom dia, queria tirar uma duvida. Quando eu clico no editar ele puxa os dados para o formulário de funcionários então eu faço a alteração só que quando eu salvo, ele duplica somente no dataTable no banco está normal então quando eu do restart no tomcat 7.0 o dataTable tira as duplicações, e o método de remover também não esta dando certo. Estou utilizando o eclipse luna, Tomcat v7.0, jsf
controller
[code]package controller;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import to.Funcionario;
import bo.IFuncionarioBO;
import bo.impl.FuncionarioBOImpl;
@SessionScoped
@ManagedBean
public class FuncionariosController {
private IFuncionarioBO funcionarioBO = new FuncionarioBOImpl();
private List<Funcionario> funcionarios;
private Funcionario funcionario;
private Funcionario funcionarioSelecionado;
private String nomeLocalizar;
{
funcionarios = new LinkedList<Funcionario>();
funcionarios.addAll(funcionarioBO.listar());
}
public IFuncionarioBO getFuncionarioBO() {
return funcionarioBO;
}
public void setFuncionarioBO(IFuncionarioBO funcionarioBO) {
this.funcionarioBO = funcionarioBO;
}
public List<Funcionario> getFuncionarios() {
return funcionarios;
}
public void setFuncionarios(List<Funcionario> funcionarios) {
this.funcionarios = funcionarios;
}
public Funcionario getFuncionario() {
if(funcionario == null){
funcionario = new Funcionario();
}
return funcionario;
}
public void setFuncionario(Funcionario funcionario) {
this.funcionario = funcionario;
}
public Funcionario getFuncionarioSelecionado() {
return funcionarioSelecionado;
}
public void setFuncionarioSelecionado(Funcionario funcionarioSelecionado) {
this.funcionarioSelecionado = funcionarioSelecionado;
}
public String getNomeLocalizar() {
return nomeLocalizar;
}
public void setNomeLocalizar(String nomeLocalizar) {
this.nomeLocalizar = nomeLocalizar;
}
public void salvar() {
funcionarioBO.salvar(funcionario);
funcionarios.add(funcionario);
FacesMessage msg = new FacesMessage("Funcionário " + funcionario.getNome()
+ " salvo com sucesso!!!");
FacesContext.getCurrentInstance().addMessage(null, msg);
funcionario = null;
}
public void novo() {
System.out.println("....");
funcionarioBO.salvar(funcionario);
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage("User successfully added."));
funcionarioSelecionado = null;
funcionario = null;
nomeLocalizar = null;
}
public void localizar() {
System.out.println("localizar");
List<Funcionario> funcionarios = new ArrayList<Funcionario>();
funcionarios = funcionarioBO.buscarUsuarioPorNome(nomeLocalizar);
nomeLocalizar = null;
funcionario = null;
System.out.println(funcionarios);
}
public void remover(Funcionario funcionario) {
System.out.println("excluido");
funcionarioBO.remover(funcionario);
FacesMessage msg = new FacesMessage("Funcionario "+funcionario.getNome()+" removido com sucesso!!!");
FacesContext.getCurrentInstance().addMessage(null, msg);
funcionario = null;
}
public void editar(Funcionario funcionario){
this.funcionario = funcionario;
}
}[/code]
xhtml
[code]
<h:head>
System Manager<h:body>
<p:layout style="min-width:400px;min-height:200px;">
<p:layoutUnit position="west" resizable="true" size="250" minSize="100" maxSize="150">
<h:form>
<p:growl id="cadastro" life="2000" />
<p:commandButton value="Cadastro Funcionario" id="cadastros" update="cadastro" actionListener="#{buttonView.buttonAction}"
styleClass="ui-priority-primary" />
</h:form>
<h:form>
<p:growl id="produto" life="2000" />
<p:commandButton value="Cadastro de Produto" id="produtos" update="produto" actionListener="#{buttonView.buttonAction}"
styleClass="ui-priority-primary" />
</h:form>
<h:form>
<p:growl id="estoque" life="2000" />
<p:commandButton value="Estoque de Produto" id="estoques" update="estoque" actionListener="#{buttonView.buttonAction}"
styleClass="ui-priority-primary" />
</h:form>
</p:layoutUnit>
<p:layoutUnit position="center">
<h:form id="form">
<h:inputHidden id="id"
value="#{funcionariosController.funcionario.id}" />
<p:panel id="panel" header="Cadastro de Funcionario"
style="margin-bottom:10px;">
<p:messages id="messages" />
<h:panelGrid columns="3">
<h:outputLabel for="nome" value="NOME: *" />
<p:inputText id="nome"
value="#{funcionariosController.funcionario.nome}" required="false"
label="nome" size="60">
<f:validateLength maximum="100" />
</p:inputText>
<p:message for="nome" />
<h:outputLabel value="TELEFONE: *" for="telefone" />
<p:inputText id="telefone" Label="telefone" styleClass='fone' value="#{funcionariosController.funcionario.telefone}"
required="false" maxlength="10" size="60" >
<f:validateLength maximum="100" />
</p:inputText>
<p:message for="telefone" />
<h:outputLabel for="endereco" value="ENDEREÇO:*" />
<p:inputText id="endereco"
value="#{funcionariosController.funcionario.endereco}"
required="false" label="endereco" size="60">
<f:validateLength maximum="45" />
</p:inputText>
<p:message for="endereco" />
<h:outputLabel for="email" value="E-MAIL: " />
<p:inputText id="email"
value="#{funcionariosController.funcionario.email}" required="false"
label="email" size="60">
<f:validateLength maximum="45" />
</p:inputText>
<p:message for="email" />
<h:outputLabel for="cpf" value="CPF: *" />
<p:inputText id="cpf" styleClass='cpf'
value="#{funcionariosController.funcionario.cpf}" required="false"
label="cpf" size="60">
<f:validateLength maximum="45" />
</p:inputText>
<p:message for="cpf" />
<h:outputLabel for="login" value="LOGIN: *" />
<p:inputText id="login"
value="#{funcionariosController.funcionario.login}" required="false"
label="login">
<f:validateLength maximum="45" />
</p:inputText>
<p:message for="login" />
<h:outputLabel for="senha" value="Senha: *" />
<p:password id="senha"
value="#{funcionariosController.funcionario.senha}" required="false"
label="senha" redisplay="true">
<f:validateLength maximum="45" />
</p:password>
<p:message for="senha" />
</h:panelGrid>
</p:panel>
<p:commandButton value="Salvar" update="@all"
action="#{funcionariosController.salvar}"
icon="ui-icon-disk" />
<p:commandButton value="Excluir" update="@all"
action="#{funcionariosController.remover}"
icon="ui-icon-close" />
<p:commandButton value="Localizar"
action="#{funcionariosController.localizar}"
icon="ui-icon-search"/>
<div align="center">
<p:dataTable value="#{funcionariosController.funcionarios}" var="funcionario"
border="10" cellpadding="20" cellspacing="0" paginator="true"
paginatorPosition="bottom" rows="10" id="funcionariosTable"
style="margin-top: 20px">
<p:column headerText="NOME" style="width: 120px">
<h:outputText value="#{funcionario.nome}" />
</p:column>
<p:column headerText="TELEFONE" styleClass='fone' style="width: 130px" >
<h:outputText value="#{funcionario.telefone}" />
</p:column>
<p:column headerText="ENDEREÇO" style="width: 180px">
<h:outputText value="#{funcionario.endereco}" />
</p:column>
<p:column headerText="E-MAIL" style="width: 250px" >
<h:outputText value="#{funcionario.email}" />
</p:column>
<p:column headerText="CPF" style="width: 120px" >
<h:outputText value="#{funcionario.cpf}" styleClass='cpf'/>
</p:column>
<p:column headerText="LOGIN" style="width: 90px" >
<h:outputText value="#{funcionario.login}" />
</p:column>
<p:column headerText="" style="width: 90px" >
<p:growl id="atualiza" life="2000" />
<p:commandButton action="#{funcionariosController.editar(funcionario)}" update="@form"
id="iconOnly" icon="ui-icon-wrench" title="Editar" />
<p:commandButton actionListener="#{funcionario.remover}" id="icon" update="atualiza"
icon="ui-icon-trash" title="Excluir" />
</p:column>
</p:dataTable>
</div>
</h:form>
</p:layoutUnit>
</p:layout>
</h:body>
[/code]Desde já obrigado, atenciosamente.