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