Pessoal, boa tarde.
estou tendo problemas com a paginção de uma colection.
Tenho uma página aonde é solicitado uma chave e valor para resgatar os dados desejados do banco. Pata tal tarefa, utilizo uma action do tipo DispatchAction, aonde o atributo “metodo” informa a operação que desejo realizar. Neste caso, a operação “listar”.
Pois bem, quando esta ação é acionada diretamente pelo usuário, funciona perfeitamente. Os dados são filtrados, a grid é populada, e consigo navegar entre as páginas.
Só que nesta grid o usuário pode realizar outras operações, como apagar um determinado registro. Existe um link ao lado de cada registro de nome “Excluir”, que executa a operação “excluir”, que se encontra na action informada acima. Esta operação recebe um formBean contendo o código do registro que será excluído, além dos dados da pesquisa realizada. Se a operação de exclusão for bem sucedida, esta realizará um mapping.findForward para “susessoExclusao”, cujo mapeamento aponta uma chamada a esta mesma action, só que passando o parâmetro “metodo=listar”. Este método recebe o formulário, que contém os dados da ultima pesquisa realizada, localiza novamente os registros e seta no form a lista dos registros localizados, para que a grid possa ser novamente populada.
Acontece que nesta tela, quando se tenta navegar entre as páginas, ocorre inicialmente o seguinte erro:
javax.servlet.ServletException: Request[/manterVistoriador] does not contain handler parameter named 'metodo'. This may be caused by whitespace in the label text.
org.apache.struts.actions.DispatchAction.unspecified(DispatchAction.java:222)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:256)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318)
fr.improve.struts.taglib.layout.workflow.LayoutRequestProcessor.processForwardConfig(LayoutRequestProcessor.java:39)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
Este é o problema. Quando realizo a filtragem diretamente, a paginação funciona. Quando a filtragem é executada num forward, ocorre este erro.
Alguém teria ideia do que pode ser? Já procurei na net e não achei nenhuma resposta. Só uma mensagem que achei no link “http://www.mail-archive.com/dev@struts.apache.org/msg08785.html”, que retrata este erro numa operação diferente como um bug. Inclusive esta mensagem parece ter sido encaminhada para o bugzilla da fundação apache. :roll:
Bom, continuarei correndo por fora tentando resolver este problema, testando algumas soluções. Mais caso alguém tenha a solução para este problema, por favor poste aqui. Sua ajuda será de grande valia. Obrigado.