-1
我試圖使用struts2-struts1-Plugin.jar
將Struts1應用程序遷移到Struts2應用程序。Struts2使用struts2-struts1-plugin從Struts1遷移
我已成功遷移。但我遇到了動作鏈問題。行動鏈不按預期工作。但是,Action Redirect按預期工作。
如果我提供動作類型作爲鏈而不是執行下一個動作它調用同一個動作類,而在調試時我能夠看到在struts2-struts1裏面的setClasname方法第一次調用setClasname方法,它第一次被設置爲正確的類,但是第二次它被設置爲之前的動作類名稱,這是原因錯誤的動作類別被觸發。
有人可以幫助我嗎?
struts.xml中<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="PackageName" namespace="/"
extends="struts1-default">
<interceptors>
<interceptor name="LoginForm"
class="com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor">
<param name="className">com.LoginForm</param>
<param name="name">LoginForm</param>
<param name="scope">request</param>
</interceptor>
<interceptor name="InboxForm"
class="com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor">
<param name="className">com.InboxForm</param>
<param name="name">InboxForm</param>
<param name="scope">request</param>
</interceptor>
<interceptor-stack name="web">
<interceptor-ref name="staticParams"/>
<interceptor-ref name="LoginForm"/>
<interceptor-ref name="modelDriven"/>
<interceptor-ref name="basicStack"/>
</interceptor-stack>
<interceptor-stack name="web2">
<interceptor-ref name="staticParams"/>
<interceptor-ref name="InboxForm"/>
<interceptor-ref name="modelDriven"/>
<interceptor-ref name="basicStack"/>
</interceptor-stack>
</interceptors>
<action name="LoginAction" class="org.apache.struts2.s1.Struts1Action" method="execute" >
<param name="className">com.LoginAction</param>
<interceptor-ref name="web"/>
<result name="success" type="chain">FetchInboxAction</result>
<result name="failure">/error.jsp</result>
</action>
<action name="FetchInboxAction" class="org.apache.struts2.s1.Struts1Action" method="execute">
<param name="className">com.FetchInboxAction</param>
<interceptor-ref name="web2"/>
<result name="success">/sucess.jsp</result>
<result name="failure">/error.jsp</result>
</action>
</package>
</struts>
連鎖行動鼓勵和S1插件應該已經被棄用。該代碼如果在這種情況下不起作用,則對觀衆的興趣不大。 –
你需要一個'chain'攔截器。羅馬人也說過。 –
感謝您的回覆。我有我的問題的解決方案,我會盡快發佈。 – ThirumalMarugan