Struts2 Não há nenhuma ação mapeada para o namespace e o nome da ação associado ao caminho do contexto

Eu sou um iniciante no Struts2, eu sei que esta pergunta foi feita aqui muitas vezes, mas eu tentei resolvê-lo e ler muitos tópicos aqui, gastar 6 horas e ainda não conseguir fazer funcionar. Realmente precisa de mais sugestões …

Aqui está meu pacote

Struts2Test +Struts2Test/src +tw.com.rrstudio.java.test -TestAction.java +Struts2Test/build +Struts2Test/WebContent +Struts2Test/WebContent/META-INF +Struts2Test/WebContent/WEB-INF/classs +Struts2Test/WebContent/WEB-INF/lib -Struts2Test/WebContent/WEB-INF/spring-context.xml -Struts2Test/WebContent/WEB-INF/spring-mvc.xml -Struts2Test/WebContent/WEB-INF/struts.xml -Struts2Test/WebContent/WEB-INF/struts2-action.xml -Struts2Test/WebContent/WEB-INF/web.xml -Struts2Test/WebContent/error.jsp -Struts2Test/WebContent/index.jsp -Struts2Test/WebContent/TestAction.jsp 

Meu web.xml

   Struts2Test  index.jsp   contextConfigLocation  /WEB-INF/spring-context.xml /WEB-INF/spring-mvc.xml    org.springframework.web.context.ContextLoaderListener   struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  actionPackages tw.com.rrstudio.java.test     HTTP://java.sun.com/jsp/jstl/core /WEB-INF/lib/tld/c.tld   *.jsp UTF-8    struts2 /*   springmvc org.springframework.web.servlet.DispatcherServlet  contextConfigLocation /WEB-INF/spring-mvc.xml  1   springmvc /*   10   

E também, struts.xml

             /WebContent/error.jsp   /WebContent/index.jsp /WebContent/TestAction.jsp    

index.jsp

        Index of Struts2Test   

Index of Struts2Test


O servidor é Tomcat 8.0.38, ele começa sem erros. Mas quando eu access

  • http://127.0.0.1:8080/Struts2Test/
  • http://127.0.0.1:8080/Struts2Test/login

isso me dá esse erro (como título), e se eu acessar

  • http://127.0.0.1:8080/Struts2Test/index.jsp

Eu vou conseguir um resultado regular 404.

Agora não tenho ideia, sugestões ou dicas são bem vindas …

Problemas relacionados a: Não há Ação mapeada para o namespace e o nome da ação associado ao caminho do contexto

Se você usar o url para chamar uma ação, verifique se esse URL está mapeado para a configuração do struts. Para solucionar o problema com o mapeamento de URL, você pode usar o plugin do navegador de configuração. Basta adicionar esse plug-in às dependencies do projeto e, quando ele for implementado, você poderá acessar um site que mostra uma configuração de tempo de execução com URLs disponíveis para chamar a ação. Por exemplo, se você estiver executando o Tomcat localmente na porta 8080 e implantando seu aplicativo no context , poderá acessar o URL do plug-in com

 http://localhost:8080/[context]/config-browser/index.action 

Você pode clicar em qualquer ação disponível na página de ações abaixo do namespace na barra lateral. Observe também que, se a sua ação não for encontrada no pacote, ela poderá estar no pacote default . O Struts faz uma pesquisa adicional no espaço de nomes default para a ação que não está no namespace mapeado a partir do URL.


Confira o plugin do navegador de configuração para depurar problemas de configuração.

Para mapear corretamente o url para a ação, são necessários dois parâmetros: o nome da ação e o namespace.

O Struts carrega a configuração xml na boot e deve saber a localização do struts.xml . Por padrão, ele está procurando no classpath para encontrar um arquivo com nome conhecido como struts.xml . Em seguida, ele analisa o documento e cria uma configuração de tempo de execução. Essa configuração é usada para encontrar o elemento de configuração apropriado para o URL de ação. Se nenhum elemento desse tipo for encontrado durante a solicitação, o código de erro 404 será retornado com a mensagem: There is no Action mapped for namespace and action name .

Além disso, essa mensagem contém um namespace e nomes de ação usados ​​para localizar a configuração da ação. Então você pode verificar suas configurações em struts.xml . Às vezes, o nome da ação e o namespace, armazenados no ActionMapping apontam para a ação errada. Esses valores são determinados pelo ActionMapper que pode ter implementações diferentes, usadas pelos plug-ins.

Há também outra configuração que pode afetar esse mapeador e mapeamento, mas o ponto é o mesmo se você receber essa mensagem, então a URL é usada e não mapeou nenhuma configuração de ação na configuração de tempo de execução. Se você não consegue perceber qual URL deve usar, tente o plugin do navegador de configuração para ver a lista de URLs disponíveis para uso.