У меня есть и индексная страница с кнопкой, которую нужно перенаправить на страницу подтверждения, используя класс действий переадресации.
Тем не менее, 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?