2012-03-19 41 views
1

我試圖對第一個動作的成功運行另一個動作,但是我得到的是錯誤,表示請求的資源不可用。從struts.xml文件中檢查下面的代碼。運行動作成功執行動作

<action name="login" class="org.shobhan.action.LoginAction" > 
<result name="success" type="dispatcher">/showProfile</result> 
<result name="error" type="redirect">/Login.jsp</result> 
</action> 
<action name="showProfile" class="org.shobhan.action.ShowProfileAction" > 
<result name="success">/profile.jsp</result> 
</action> 

我有兩個java文件LoginAction和ShowProfileAction存在於同一個文件夾中。

回答

0

不要你的成功的呼叫有一個文件擴展名?

+0

像/showProfile.jsp – 2012-03-19 19:02:38

+0

我試過.action,沒有工作。 – NotesArt 2012-03-19 19:07:49

1
<result name="success" type="dispatcher">/WEB-INF/showProfile.jsp</result>  
<result name="error" type="dispatcher">/WEB-INF/Login.jsp</result> 

上面沒有調用另一個動作,但如果你有在WEB-INF的JSP頁面會工作。

分派器解析爲一個jsp(以及在這種情況下)和重定向開始從頭呼叫。 /Login.jsp是否可以從url中調用?換句話說是CONTEXT_ROOT/Login.jsp可訪問嗎?如果是這樣,那麼你可以轉發它,如果沒有,那麼這是不可能的。

一般來說它是不是一個錯誤後重定向,因爲它會刪除字段錯誤(以及任何其他變量和信息,這可能是有用的)一個好主意。

如果你想調用的操作請參見:Action redirect in struts.xml有關調用動作和一些建議更多的選擇。

PS:調度員是默認類型,成功是默認的名稱,以便您可以簡單地寫......

<result>/WEB-INF/showProfile.jsp</result>  
<result name="error">/WEB-INF/Login.jsp</result>