Recentemente tive que fazer manutenção em um sistema bem antigo, código de 10 anos atrás, J2EE 1.4 e Struts 1. Tive o seguinte erro ao acessar algumas páginas novas que havia desenvolvido:
SEVERE: Request[/url] does not contain handler parameter named 'action'
Depois de muito penar pela internet em vários fóruns e não encontrar solução, encontrei a resolução na documentação do Struts.
Faltou implementar o método unspecified() de DispatchAction na minha Action:
public ActionForward unspecified( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws JcbException { return mapping.findForward("ok"); }
Veja a descrição de método unspecified() na documentação oficial:
Method which is dispatched to when there is no value for specified request parameter included in the request. Subclasses of
DispatchAction
should override this method if they wish to provide default behavior different than throwing a ServletException.
A minha Action extende DispatchAction, e este método deve ser implementado para, caso a requisição não tenha um parâmetro, não lançar uma ServletException.