2017-06-05 116 views
1

我想要使用Struts1和Struts2运行的应用程序。原因是它正在迁移,但有很多Struts1,我们想要做的点点滴滴不大...我知道这可以做运行Struts 1和Struts 2

无论如何,我无法让我的S2过滤器拿起我的网址,没有我访问* .action URL时发生错误!所有S1页面仍然正常工作。我的Web 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类扩展行动,从字面上刚刚在它syso证明它达到了行动。 XMLConfig的”

<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时

我的JSP是字面上只是一个HelloWorld示例和被测举行的所有我得到的是应用404页/ testStruts2.jsp

有什么建议吗?随着启动过程中没有错误或记录时,我打我无所适从,以什么尝试下一个网址...

试图加入命名空间

+0

启动时是否出现错误?尝试添加'namespace =“/”'到'package'。您使用的是哪个版本的S2? –

+0

@AleksandrM试图添加命名空间=“/”和相同的...使用S2 2.5.10 当我访问除了我的404页以外的网址时没有发现启动和错误记录零错误!我很难过 –

回答

1

好想通我在做什么错?

我的struts.xml文件与旧的struts-config文件一起放置在WEB-INF中,新的过滤器没有读取它。我以前this post的数字,一分出来,并修改了我的我的过滤器的声明在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-default软件包(来自struts-default.xml)。'

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