运行 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 ??
我正在尝试使用 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 文件旁边,新过滤器没有读取它。我使用
<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 ??