运行 Struts 1 & Struts 2

Running Struts 1 & Struts 2

我正在尝试使用 Struts1 和 Struts2 获取应用程序 运行。原因是它正在迁移,但有很多 Struts1 我们想一点一点地做而不是大爆炸...我知道这可以完成

无论如何我无法让我的 S2 过滤器接收我的 URL 并且当我访问 *.action URL 时没有出现错误!所有 S1 页面仍然可以正常工作。我的网站 XML 包含 S2 配置...

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.action</url-pattern>
</filter-mapping>

和 S1 servlet

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

我还设置了一个简单的 TestStruts2Action class 扩展 Action,它实际上只是有一个 syso 来证明它到达了动作。 XML配置'

  <package name="main" extends="struts-default">
      <action name="testStruts2" class="com.myclass.TestStruts2Action">
         <result name="success">test/testStruts2.jsp</result>
      </action>
  </package>

我得到的只是点击 URL /MyApp/testStruts2.action

时的应用程序 404 页面

我的 JSP 实际上只是一个 HelloWorld 示例,位于 test/testStruts2.jsp

有什么想法吗?在启动期间没有错误或在我点击 URLs 时没有记录我不知道接下来要尝试什么...

已尝试添加命名空间

好吧,我知道我做错了什么......

我的 struts.xml 文件放在 WEB-INF 中旧的 struts-config 文件旁边,新过滤器没有读取它。我使用 计算出这一点并修改了我在 web.xml 中的过滤器声明

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
  <init-param>
    <param-name>config</param-name>
    <param-value>struts-default.xml,struts-plugin.xml,struts.xml</param-value>
  </init-param>

然而这引起了我的注意

@AleksandrM

'此外,您定义 xml 文件的顺序也很重要。例如。如果尚未加载,则无法在 struts.xml 中扩展 struts-默认包(来自 struts-default.xml)。'

@AleksandrM 你的意思是如果你移动 struts.xml 位置你不能扩展包声明中的 struts-default ??