Estou com um probleminha no Struts que nunca tinha visto antes.
O problema está na linha do jsp onde tenho <html:form action="/NomeDoAction.do">
Assim que a aplicação chama este jsp dá um erro como se não estivesse mapeado corretamente (conforme log mais abaixo).
Exception
javax.servlet.ServletException: Cannot retrieve mapping for action /NomeDoAction
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
Root cause
javax.servlet.jsp.JspException: Cannot retrieve mapping for action /NomeDoAction
org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:810)
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:50)
Indo um pouco mais a fundo, descompilando e debugando a classe FormTag do Struts que possui este método lookup(), percebe-se que o atributo “mappingName” recebe o valor do mapeamento corretamente ("/NomeDoAction.do"), porém o atributo “mapping”, simplesmente não consegue receber este valor, ficando null, e conseqüentemente entrando na exception (conforme abaixo):
String mappingName = RequestUtils.getActionMappingName(action);
mapping = (ActionMapping)moduleConfig.findActionConfig(mappingName);
if(mapping == null) {
Cai na Exception
}
A classe Action faz o mapping.findForward(“sucesso”) para o path="/NomeDoAction" corretamente. Tanto que, como falei debugando os atributos carregam o valor de path e forward corretamente mas essa segunda linha do struts abaixo não recebe o valor do path, deixando o mapping null:
Stone10 o que eu vou falar pode ser algo extremamente absurdo e pode não ser o seu caso…Mas eu lembro que uma vez eu tive problema com action no struts e resolvi criando um campo hidden chamado action na página.Pode ser que não resolva mas eh algo simples de fazer e testa (eu acho…hehe)