Pessoal, estou tendo uma excessão ao obter o ID. de um valor ao tentar excluir isso através de uma janela modal.
este é o código da página, logo abaixo, Repositório e ManagedBean, obrigado, desde já.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<ui:composition template="/template/template.xhtml">
<ui:define name="content">
<a4j:status onstart="#{rich:component('statPane')}.show()"
onstop="#{rich:component('statPane')}.hide()" />
<h:form>
<rich:dataTable value="#{eventoBean.eventos}" var="evento"
id="eventosTable" iterationStatusVar="it" rows="5">
<f:facet name="header">
<rich:columnGroup>
<rich:column colspan="3">
<h:outputText value="Eventos" />
</rich:column>
<rich:column breakRowBefore="true">
<h:outputText value="Nome do evento" />
</rich:column>
<rich:column>
<h:outputText value="Data do evento" />
</rich:column>
<rich:column>
<h:outputText value="Operações" />
</rich:column>
</rich:columnGroup>
</f:facet>
<rich:column>
<h:outputText value="#{evento.nome}" />
</rich:column>
<rich:column>
<h:outputText value="#{evento.dataEvento}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
</rich:column>
<!-- ÁREA DOS BOTÕES -->
<rich:column>
<a4j:commandLink styleClass="no-decor" execute="@this"
render="@none"
oncomplete="#{rich:component('confirmPane')}.show()">
<h:graphicImage value="./images/delete.gif" alt="delete" />
<a4j:param value="#{evento.id}" />
</a4j:commandLink>
<a4j:commandLink styleClass="no-decor" render="editGrid"
execute="@this" oncomplete="#{rich:component('editPane')}.show()">
<h:graphicImage value="./images/edit.gif" alt="edit" />
<a4j:param value="#{it.index}"
assignTo="#{carsBean.currentCarIndex}" />
<f:setPropertyActionListener target="#{carsBean.editedCar}"
value="#{car}" />
</a4j:commandLink>
</rich:column>
<!-- FIM ÁREA DOS BOTÕES -->
<f:facet name="footer">
<rich:dataScroller for="eventosTable" />
</f:facet>
</rich:dataTable>
<!-- FUNCIONALIDADE DOS BOTÕES (REMOVER) -->
<a4j:jsFunction name="remove" action="#{eventoBean.remove()}"
render="table" execute="@this"
oncomplete="#{rich:component('confirmPane')}.hide();" />
<!-- FUNCIONALIDADE DOS BOTÕES -->
<!-- JANELA DE CARREGAMENTO -->
<rich:popupPanel id="statPane" autosized="true">
<h:graphicImage value="./images/ai.gif" alt="ai" />
Aguarde por favor.
</rich:popupPanel>
<!-- JANELA DE CONFIRMAÇÃO EXCLUSÃO -->
<rich:popupPanel id="confirmPane" autosized="true">
Você tem certeza que deseja excluir este registro?
<a4j:commandButton value="Cancel"
onclick="#{rich:component('confirmPane')}.hide(); return false;" />
<a4j:commandButton value="Delete" onclick="remove(); return false;" />
</rich:popupPanel>
</h:form>
</ui:define>
</ui:composition>
</html>
Este é o método no meu Repositório:
public void remove(Long id) {
System.out.println("R - REM");
Evento evento = this.procura(id);
this.manager.remove(evento);
Managed Bean.
public void remove() {
System.out.println("B - REM");
Map<String, String> params = FacesContext.getCurrentInstance()
.getExternalContext().getRequestParameterMap();
Long id = Long.parseLong(params.get("id"));
EventoRepository repository = new EventoRepository(this.entityManager);
repository.remove(id);
this.evento = null;
}