Struts 1 Action Forward возвращает 404 - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть и индексная страница с кнопкой, которую нужно перенаправить на страницу подтверждения, используя класс действий переадресации. Тем не менее, jsp, который должен отображаться, когда я нажимаю на btn, по некоторым причинам не распознается, и я продолжаю получать страницу 404.

Моя страница указателя имеет форму, содержащую кнопку:

<form name="myF" method="get">
    <table border="1">
        <caption>Gestion des etudiants STRUTS 1</caption>
        <tr>
            <td>Nom:<input type="text" name="nom"/></td>
            <td>Prenom:<input type="text" name="prenom"/></td>
            <td>Cin:<input type="text" name="cin" /></td>
        </tr>
    <tr>
        <td><input type="submit" value="Recherche Etudiant" onclick="recherche()"/></td>
    </tr>
</table>
</form>

Этот фрагмент javascript связывает его с контроллером распорок

   <script type="text/javascript">
                function recherche(){
                    this.document.myF.action="rechercher.do";
                    this.document.myF.submit();
                }
    </script>

Моя конфигурация Struts должна отправлять данные в соответствующий сервлет класса действий

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config 
PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" 
 "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>
    <form-beans>
        <form-bean name="etudiantForm"
            type="ecole.ensa.etudiant.presentation.forms.EtudiantForm">
            <form-property name="nom" type="java.lang.String" />
            <form-property name="prenom" type="java.lang.String" />
            <form-property name="cin" type="java.lang.String" />
        </form-bean>
    </form-beans>
    <action-mappings>

        <action path="/rechercher" input="/index.jsp" 
            type="ecole.ensa.etudiant.presentation.action.RechEtudiantAction">
            <forward name="success" path="/jsps/ajout_ok.jsp" />
        </action>
    </action-mappings>
</struts-config>

Класс действия просто установлен для пересылки страницы просмотра:

public class RechEtudiantAction extends Action {

    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) 
        throws Exception {

        return mapping.findForward("success");
    }
}

А для проверки работоспособности, вот мой web.xml

   <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
      <display-name>Etudiant</display-name>
  <!-- Servlet controleur de Struts -->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <!-- Mapping des url avec la servlet -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

  <!-- page d'accueil de l'application -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

Результатом моего нажатия кнопки всегда является страница 404 со следующим URL: localhost: 8080 / Etudiant / rechercher.do? nom = & prenom = & cin =

Кажется, ни одна из тем, которые я просматривал в Интернете, не отвечает моей проблеме, и я не знаю, как правильно отладить этот тип проблемы.

ОБНОВЛЕНИЕ 1 *: Обычно я запускаю Tomcat с помощью systemd. На этот раз я попытался запустить сервер из затмения, используя папку установки tomcat в качестве пути к серверу / usr / share / tomcat8. Чего я не понимаю, так это того, почему страница индекса отображается, когда я запускаю сервер из Eclipse, но когда я щелкаю правой кнопкой мыши по проекту, затем нажимаю «Запуск от имени сервера» на том же сервере, я получаю ошибку 404?

...