Bom dia pessoal, sou novato em primefaces e estou tentando desenvolver uma pagina meu problema é o seguinte:
Possuo uma dataTable que só e renderizada quando clico em um commandButton dentro dessa tabela em cada linha da mesma possuo um commandLink que deveria executar um metodo de exclusão, mas que não é executado.
Obs: Quando carrego a tabela na inicialização da pagina o método de exclusão funciona corretamente.
.xhtml
<h:form>
<p:commandButton value="Pesquisar" ajax="false" immediate="true"
action="#{usuarioBean.inicializar}" icon="ui-icon-search" />
<div class="ui-fluid">
<p:dataTable id="usertable" style="margin-top:20px"
rendered="#{not empty usuarioBean.usuarios}" var="usuario"
reflow="true" rows="5" paginator="true"
value="#{usuarioBean.usuarios}">
<p:column headerText="Nome">
<h:outputText value="#{usuario.nome}" />
</p:column>
<p:column headerText="Usuario">
<h:outputText value="#{usuario.usuario}" />
</p:column>
<p:column headerText="Grupo">
<h:outputText value="#{usuario.grupo}" />
</p:column>
<p:column headerText="Setor" style="width:150px">
<h:outputText value="#{usuario.setor}" />
</p:column>
<p:column headerText="Ações" style="width:50px">
<h:commandLink immediate="true" action="#{usuarioBean.excluir}">
<i class="fa fa-times"></i>
<f:setPropertyActionListener target="#{usuarioBean.usuarioSelecionado}" value="#{usuario}"/>
</h:commandLink>
<h:link><i class="fa fa-pencil"></i></h:link>
</p:column>
</p:dataTable>
</div>
</h:form>
Bean
public class UsuarioBean implements Serializable {
private Repositorios repositorios = new Repositorios();
private Usuario usuario = new Usuario();
private List usuarios = new ArrayList();
private Usuario usuarioSelecionado;
@SuppressWarnings("unchecked")
public void inicializar() {
Usuarios usuarios = this.repositorios.getUsuarios();
System.out.println("=================Testando===================");
this.usuarios = usuarios.todos();
Session session = (Session) FacesUtil.getRequestAtributte("session");
this.usuarios = session.createCriteria(Usuario.class).addOrder(Order.asc("nome")).list();
}
public Setor[] getSetores() {
return Setor.values();
}
public void cadastrar() {
GestaoUsuarios gestaousuarios = new GestaoUsuarios(this.repositorios.getUsuarios());
try {
gestaousuarios.salvar(usuario);
this.usuario = new Usuario();
this.inicializar();
FacesUtil.adcionarMensagem(FacesMessage.SEVERITY_INFO, "Cadastro efetuado com sucesso!");
} catch (Exception e) {
FacesUtil.adcionarMensagem(FacesMessage.SEVERITY_ERROR, e.getMessage());
}
}
public void excluir() {
GestaoUsuarios gestaoLancamentos = new GestaoUsuarios(
this.repositorios.getUsuarios());
System.out.println("*************Fui chamado******************");
try {
gestaoLancamentos.excluir(this.usuarioSelecionado);
this.inicializar();
FacesUtil.adcionarMensagem(FacesMessage.SEVERITY_INFO,
"Usuario excluido com sucesso!");
} catch (Exception e) {
FacesUtil.adcionarMensagem(FacesMessage.SEVERITY_ERROR,
e.getMessage());
}
}