Struts 1 Action Forward返回404

时间:2018-11-01 22:49:01

标签: javascript xml java-ee struts web.xml

我有一个带有索引按钮的索引页面,该按钮需要使用转发操作类重定向到确认页面。 但是由于某些原因,当我单击btn时应该显示的jsp未被识别,并且我不断获得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代码段将其与struts控制器链接

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

我的struts配置应该将数据发送到相应的动作类servlet

<?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页面,其网址如下: 本地主机:8080 / Etudiant / rechercher.do?nom =&prenom =&cin =

我在互联网上浏览过的所有主题似乎都无法回答我的问题,而且对于如何正确调试此类问题我一无所知。

更新1 *: 通常我用systemd运行tomcat。 这次,我尝试使用tomcat安装文件夹作为服务器路径/ usr / share / tomcat8从eclipse启动服务器。 我不明白的是为什么当我从eclipse启动服务器时为什么会显示索引页,但是当我右键单击该项目然后在同一服务器上按“以服务器身份运行”时,出现404错误?

0 个答案:

没有答案