我正在尝试在 Eclipse 中设置 maven 和 struts 2 项目,但我遇到了问题。我选择创建简单的 HelloWorld 示例,然后添加一些其他功能,但我遇到了问题。
我在项目中有“struts.xml”路径:src/main/resources/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>
<package name="default" namespace="/" extends="struts-default">
<action name="Login">
<result>/Pages/Login.jsp</result>
</action>
<action name="Index">
<result>/Pages/Index.jsp</result>
</action>
<action name="Welcome" class="com.contactweb.main.Contact">
<result name="SUCCESS">/Pages/Welcome.jsp</result>
</action>
</package>
</struts>
我也有带有路径 src/main/web/WEB-INF/web.xml 和内容的 web.xml:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>ContactWeb</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
从命令行我使用'mvn clean install'并将.war文件放入目标文件夹,我将在Tomcat下部署该.war文件(也成功部署它)但是当我输入url时出现错误:
请求的资源 (/ContactWeb/Pages/Login.jsp) 不可用。
具有不同 url-s 的相同错误仅路径不同(/ContactWeb/Login.jsp、/ContactWeb/Login.action 等)。
在我的项目中,我确实有 Login.jsp、Index.jsp 和 Welcome.jsp。它们位于:src/main/web/Pages
我在struts2中的某个地方读到过,我需要对url进行.action扩展,但它不起作用,为什么struts.xml中是包名和命名空间?到底需要什么?我已经阅读了它要显示的页面?