Struts 2 — нет сопоставления действия для пространства имен [/] и имени действия [validateLogin], связанного с контекстным путем [/LoginApplication]

Я попробовал все возможные решения, доступные в Интернете.

ошибка:

HTTP Status 404 - There is no Action mapped for namespace [/] and action name [validateLogin] associated with context path [/LoginApplication].

файл 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="hello" extends="struts-default">

      <action name="validateLogin" 
            class="com.example.login.ValidationAction"
            method="execute">
            <result name="success">/result.jsp</result>
      </action>
   </package>
</struts>

index.jsp

<form action="validateLogin">
        <table>
            <tr>
                <td><label for="username">Username</label></td><td><input type="text" name="username"></td>
            </tr>
            <tr>
                <td><label for="password">Password</label></td><td><input type="password" name="password"></td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" value="Login"></td>
            </tr>
        </table>
    </form>

person piresashwin    schedule 22.09.2012    source источник
comment
Какую версию S2 вы используете? Вы пробовали /validateLogin.action? По какой причине вы не используете теги S2? Кроме того, вам, вероятно, следует поместить свои JSP-страницы в WEB-INF, чтобы предотвратить прямой доступ клиента. Нет необходимости указывать метод выполнения, так как он используется по умолчанию.   -  person Dave Newton    schedule 22.09.2012
comment
Переведите свой проект в режим разработки и выложите логи, мы проанализируем проблему. struts.apache.org/2.3.4.1/docs/devmode.html   -  person MohanaRao SV    schedule 23.09.2012
comment
Я использую struts-2.3.4.1. Я новичок в стойках.   -  person piresashwin    schedule 23.09.2012
comment
Я использовал режим разработчика... м не получаю никаких журналов   -  person piresashwin    schedule 23.09.2012
comment
как получить доступ к jsp-страницам из папки web-inf?   -  person piresashwin    schedule 23.09.2012
comment
@piresashwin ‹имя результата=успех›/WEB-INF/result.jsp‹/результат›. Кстати, вам не нужно писать name="success", потому что это также значение по умолчанию.   -  person Aleksandr M    schedule 28.09.2012
comment
Вы используете очень старый DTD для struts.xml, используйте последний <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">   -  person Lukasz Lenart    schedule 27.07.2013


Ответы (3)


Решение моей проблемы было немного странным.

я только что удалил <constant name="struts.devMode" value="true" /> из файла struts.xml

и программа начала работать правильно... а затем я снова поместил тот же код в файл struts.xml, и он все еще работал....

person piresashwin    schedule 23.09.2012
comment
Нет, это вовсе не первопричина. - person MohanaRao SV; 23.09.2012

Убедитесь, что struts.xml находится в правильном каталоге. Если вы используете Eclipse, вы можете выполнить следующие действия:

1- Щелкните правой кнопкой мыши проект ⇾ свойства ⇾ Сборка развертывания.

2- Сделайте путь развертывания ваших источников следующим образом: screenshot1

-/Src/main/java : WEB-INF/classes.

-Struts2 (библиотека): WEB-INF/lib.

3- Поместите struts.xml в каталог, у которого есть путь развертывания с WEB-INF/classes. Например, здесь вы должны поместить его в /src/main/java.скриншот2

person Anis Hellal    schedule 02.04.2021

Эта ошибка возникает в основном, когда структура пакета составлена ​​неправильно.

Если файл web.xml и файл struts.xml созданы в правильном пакете, то оба файла XML будут автоматически отражены в структуре папок файлов конфигурации в Netbeans.

См. скриншот:

person Roshan Mohapatra    schedule 04.01.2018