Exemple de Struts Hello World :Il n'y a aucune action mappée pour l'espace de noms [/] et l'erreur de nom d'action
-
13-11-2019 - |
Question
je suis un débutant absolu sur Struts2.J'essaie de suivre les tutoriels sur le site Web de Struts.J'ai suivi ce tutoriel.j'ai quelques problèmes avec ça.j'ai créé un projet Web dynamique sur Eclipse.Ensuite j'ai suivi le tuto.Cependant, lorsque j'exécute l'exemple, j'obtiens l'erreur suivante.
There is no Action mapped for namespace [/] and action name [hello] associated with context path [/Hello_World_Struts_2]. - [unknown location]
j'ai la structure de répertoire suivante
Et mon fichier struts.xml est
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="basicstruts2" extends="struts-default" namespace="/">
<action name="index">
<result>/index.jsp</result>
</action>
<action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute">
<result name="SUCCESS">/HelloWorld.jsp</result>
</action>
</package>
</struts>
merci pour vos réponses.
La solution
Le struts.xml
Le fichier de configuration doit être sur le chemin de classe (par opposition à WEB-INF
).
Le didacticiel lié suppose une version Maven et indique le struts.xml
le fichier devrait entrer src/main/resources
, qui sera inclus dans le chemin de classe dans les versions Maven.Puisque vous ignorez cette partie, vous souhaiterez probablement la placer à la racine de votre répertoire source.
Autres conseils
Vous devez créer un classes/
dossier sous WEB-INF/
et mets dans ton struts.xml
déposer!
Cliquez avec le bouton droit sur le projet.Allez au chemin de construction de propriétés de déploiement et ajoutez tous les fichiers .jar à / web-inf / lib.
, alors vous ne devriez pas obtenir cette erreur.
Strubs.xml doit être situé dans le répertoire: src / struts.xml ..
et web-inf / web.xml Vous devez configurer les jambes de force en fonction du filtre ..
J'ai eu la même erreur et j'ai obtenu une solution en consultant le journal Tomcat lors du redémarrage :doctype manquait dans struts.xml
alors j'ai ajouté
<xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
maintenant ça marche !
J'ai résolu le problème en ajoutant une balise par défaut-action-refer, par exemple
<default-action-ref name="home" />
après la balise de paquet
dans strats.xml
<package name="user" namespace="/" extends="struts-default">
<default-action-ref name="upload" />
J'ai eu le même problème et j'avais fait face à cause de ne pas mentionner correctement l'espace de noms dans Struts.xml.
J'ai ajouté l'extrait suivant dans le web.xml:
<welcome-file>login.jsp</welcome-file>
et aussi faire l'espace de noms comme «/» par défaut ... J'espère que cela répond à votre requête ..
Dans mon cas, j'ai dû renommer Struts.xml
---> struts.xml