Пример Struts Hello world: для пространства имен [/] и имени действия нет отображенного действия - PullRequest
11 голосов
/ 24 января 2012

Я абсолютный новичок в Struts2.Я стараюсь следовать инструкциям на веб-сайте Struts.я следовал этому уроку .У меня есть некоторые проблемы с этим.я создал динамический веб-проект на затмение.Затем я последовал за учебником.Однако, когда я запускаю пример, я получаю следующую ошибку.

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>

спасибо за ваши ответы.

Ответы [ 7 ]

17 голосов
/ 24 января 2012

Файл конфигурации struts.xml должен находиться в пути к классам (в отличие от WEB-INF).

Связанное руководство предполагает сборку Maven и заявляет, что файл struts.xml должен быть в src/main/resources, который будет включен в путь к классам в сборках Maven. Поскольку вы игнорируете эту часть, вы, вероятно, захотите поместить ее в корень вашего исходного каталога.

3 голосов
/ 24 сентября 2012

Вы должны создать папку classes/ в папке WEB-INF/ и поместить в файл struts.xml!

2 голосов
/ 25 апреля 2013

Щелкните правой кнопкой мыши по проекту.Перейдите к пути сборки развертывания свойств и добавьте все файлы .jar в / WEB-INF / lib.Тогда вы не должны получить эту ошибку.

struts.xml должен быть расположен в каталоге: src / struts.xml ..

И WEB-INF / web.xml вам нужно настроитьраспорки на основе фильтра ..

1 голос
/ 22 сентября 2013

Я решил проблему, добавив тег default-action-ref, например,

<default-action-ref name="home" />

после тега пакета

в struts.xml

<package name="user" namespace="/" extends="struts-default">

<default-action-ref name="upload" />
1 голос
/ 11 июня 2013

Я получил ту же ошибку и получил решение, просматривая журнал 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">

, теперь он работает!

0 голосов
/ 25 января 2015

В моем случае мне пришлось переименовать Struts.xml ---> struts.xml

0 голосов
/ 01 октября 2014

У меня была та же проблема, и я столкнулся с ней из-за неправильного упоминания пространства имен в struts.xml.

Я добавил следующий фрагмент в файл web.xml:

<welcome-file>login.jsp</welcome-file>

а также делает пространство имен по умолчанию "/" ... Надеюсь, оно отвечает на ваш запрос ..

...