我有一个带有索引按钮的索引页面,该按钮需要使用转发操作类重定向到确认页面。 但是由于某些原因,当我单击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错误?