Pessoa estou com um problema em uma pequena aplicação que fiz, ela funciona da seguinte maneira,
Tenho uma pagina index.jsp com um menu que abre uma pagina cadastro.jsp usando o a4j:include
Essa pagina funciona perfeitamente, cadastra, consigo alterar, e excluir o que está na dataModel
o unico problema é que quando tem mais de um item no dataModel, e eu tento excluir da o seguinte erro
javax.servlet.ServletException: Illegal view Id for build AJAX Action URL: cadastro.jsp
Consegui perceber que esta dando o erro por que esse link está dando um reRender no outputPanel que ele está dentro
se eu trocar para ele dar um reRender em qualquer outro painel funciona de boa, só que isso não me funciona por que tenho
que atualizar esse outputPanel com o dataModel novamente
segue as paginas
index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j" %>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Biblioteca Pessoal</title>
<link href="css/estilo.css" rel="stylesheet"/>
</head>
<body>
<f:view>
<h:panelGrid id="painel" width="100%" cellpadding="0" cellspacing="0" columns="3" border="0" columnClasses="banner1, banner2, banner3">
<h:graphicImage url="imagens/livro.gif"/>
<h:graphicImage url="imagens/titulo.gif" />
<h:graphicImage url="imagens/preencher.gif" width="100%" height="60"/>
</h:panelGrid>
<a4j:region>
<a4j:form>
<rich:toolBar>
<rich:toolBarGroup >
<h:panelGroup >
<h:graphicImage url="imagens/usuario.png" width="20" height="20" styleClass="pic"/>
<h:outputText value="Home" />
</h:panelGroup>
</rich:toolBarGroup>
<rich:dropDownMenu>
<f:facet name="label">
<h:panelGroup>
<h:graphicImage url="imagens/usuario.png" width="20" height="20" styleClass="pic"/>
<h:outputText value="Usuarios" />
</h:panelGroup>
</f:facet>
<rich:menuItem value="Cadastrar" submitMode="ajax" reRender="principal">
<a4j:actionparam value="cadastro.jsp" assignTo="#{linkBean.link}"/>
</rich:menuItem>
<rich:menuItem value="Pesquisar" submitMode="ajax"></rich:menuItem>
</rich:dropDownMenu>
</rich:toolBar>
<a4j:outputPanel id="mensagem">
<h:messages />
</a4j:outputPanel>
<br/>
</a4j:form>
<a4j:outputPanel id="principal" >
<a4j:include viewId="#{linkBean.link}"/>
</a4j:outputPanel>
</a4j:region>
</f:view>
</body>
</html>
cadastro.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j" %>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich" %>
<rich:panel>
<f:facet name="header">
<h:outputText value="Cadastrar Usuário" styleClass="titulo"/>
</f:facet>
<a4j:form>
<a4j:outputPanel id="formulario">
<h:panelGrid columns="2" border="0">
<h:outputText value="Nome: " />
<h:inputText id="nome" size="40" value="#{usuarioController.usuario.nome}"/>
<h:outputText value="Telefone: " />
<h:inputText id="telefone" size="20" value="#{usuarioController.usuario.telefone}"/>
<h:outputText value="Celular: " />
<h:inputText id="celular" size="20" value="#{usuarioController.usuario.celular}"/>
</h:panelGrid>
</a4j:outputPanel>
<a4j:commandButton reRender="cadastros,formulario" value="Salvar" action="#{usuarioController.salvar }"/>
</a4j:form>
<br/>
<br/>
<a4j:form>
<a4j:outputPanel id="cadastros">
<rich:dataTable width="50%" value="#{usuarioController.listaUsuarios}" var="item" columnClasses=",,,centro, centro">
<f:facet name="header">
<h:outputText value="Usuários Cadastrados" />
</f:facet>
<h:column>
<f:facet name="header">
<h:outputText value="Nome" />
</f:facet>
<h:outputText value="#{item.nome }"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Telefone" />
</f:facet>
<h:outputText value="#{item.telefone }" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Celular" />
</f:facet>
<h:outputText value="#{item.celular }" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Editar" />
</f:facet>
<a4j:commandLink id="alterar" action="#{usuarioController.prepararAlteracao}" reRender="formulario">
<h:graphicImage url="imagens/edit.gif" alt="Clique aqui para editar o cadastro do usuário"/>
<a4j:ajaxListener type="org.ajax4jsf.ajax.ForceRender"/>
</a4j:commandLink>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Excluir" />
</f:facet>
<a4j:commandLink id="excluir" action="#{usuarioController.excluir}" reRender="cadastros">
<h:graphicImage url="imagens/delete.gif" alt="Clique aqui para excluir o cadastro do usuário" />
<a4j:ajaxListener type="org.ajax4jsf.ajax.ForceRender"/>
</a4j:commandLink>
</h:column>
<f:facet name="footer" >
<h:panelGroup>
<h:graphicImage url="imagens/first.gif" />
<h:graphicImage url="imagens/previous.gif" />
<h:graphicImage url="imagens/next.gif" />
<h:graphicImage url="imagens/last.gif" />
</h:panelGroup>
</f:facet>
</rich:dataTable>
</a4j:outputPanel>
</a4j:form>
</rich:panel>