Struts Привет, пример мира: для пространства имен не указано действие [/] и ошибка имени действия
Я абсолютный новичок для Struts2. Я свяжусь, чтобы следить за учебниками на веб-сайте struts. Я последовал за этот учебник. У меня проблемы с этим. Я создал динамический веб-проект на eclipse. Затем я последовал за учебником. Однако, когда я запускаю пример, я получаю следующую ошибку.
There is no Action mapped for namespace [/] and action name [hello] associated with context path [/Hello_World_Struts_2]. - [unknown location]
У меня есть следующая структура каталогов
![enter image description here]()
И мой файл struts.xml
<?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>
спасибо за ваши ответы.
Ответы
Ответ 1
Конфигурационный файл struts.xml
должен находиться в пути к классам (в отличие от WEB-INF
).
Связанный учебник предполагает сборку Maven и указывает, что файл struts.xml
должен находиться в src/main/resources
, который будет включен в путь к классам в сборках Maven. Поскольку вы игнорируете эту часть, вы, скорее всего, захотите поместить ее в корневой каталог вашего исходного каталога.
Ответ 2
Вам нужно создать папку classes/
в WEB-INF/
и поместить в свой файл struts.xml
!
Ответ 3
Щелкните правой кнопкой мыши проект. Перейдите к пути сборки свойств развертывания и добавьте все файлы .jar в /WEB -INF/lib.
Тогда вы не должны получать эту ошибку.
struts.xml должен находиться в каталоге: src/struts.xml..
И WEB-INF/web.xml вам нужно настроить стойки на основе фильтра.
Ответ 4
Я решил проблему, добавив тег default-action-ref, например
<default-action-ref name="home" />
после тега пакета
в struts.xml
<package name="user" namespace="/" extends="struts-default">
<default-action-ref name="upload" />
Ответ 5
Я получил ту же ошибку и получил решение, смотрящее на журнал tomcat при перезапуске: doctype отсутствовал в struts.xml
поэтому я добавил
<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">
теперь он работает!
Ответ 6
У меня была такая же проблема, и я столкнулся с ней из-за неправильного упоминания пространства имен в struts.xml.
Я добавил следующий фрагмент в web.xml:
<welcome-file>login.jsp</welcome-file>
а также создание пространства имен как "/" по умолчанию...
Надеюсь, он ответит на ваш запрос.
Ответ 7
В моем случае мне пришлось переименовать Struts.xml
--- > Struts.xml