对行动的成功采取行动

时间:2012-03-19 18:59:42

标签: xml struts2 action

我正在尝试对第一个操作的成功运行另一个操作,但我得到的是错误,说请求的资源不可用。从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存在于同一个文件夹中。

3 个答案:

答案 0 :(得分:4)

要重定向到某个操作,请使用actionRedirect result type

<result type="redirectAction">showProfile</result>

答案 1 :(得分:1)

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

上面没有调用另一个动作,但如果你在WEB-INF中有这些JSP,那么它将起作用。

Dispatcher解析为jsp(在这种情况下),重定向从头开始调用。是/ login.jsp可以从网址调用吗?换句话说是CONTEXT_ROOT / Login.jsp可以访问吗?如果是这样,那么你可以转发它,如果没有,那么就不可能。

一般情况下,错误后重定向不是一个好主意,因为它会删除字段错误(以及任何其他可能有用的变量和消息)。

如果您想调用某个操作,请参阅:Action redirect in struts.xml以获取有关调用操作和一些建议的更多选项。

PS :调度程序是默认类型,成功是默认名称,因此您只需编写...

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

答案 2 :(得分:0)

你的成功通话不应该有文件扩展名吗?