我需要一种使用一个请求执行多个struts操作的方法。目标是最小化对服务器的请求的需要。所以我需要的是像“MultiAction”这样的东西,它将一个动作列表作为它应该执行的参数,然后返回这个动作的“组合”结果。
例如:
所以我的问题是:
答案 0 :(得分:2)
这可以通过使用" redirectAction"来实现。在结果类型中。以下代码是相同的示例。您必须根据使用嵌套操作的要求在struts XML中配置操作标记。
<action name="userHomeAction" class="com.etp.connect.struts.action.UserHomeAction">
<result type="redirectAction" name="SUCCESS_EDIT">
<param name="actionName">getUserEditData</param>
<param name="selectedUser">${selectedUser}</param>
</result>
<result name="error">/jsp/userMgmt/Users_Home.jsp</result>
<result name="login">/jsp/loginMgmt/Login.jsp</result>
</action>
答案 1 :(得分:0)
请求&gt;动作1&gt; <动作2>响应 在Struts 2中,这可以通过Chain Result实现。 Chain Result是一种结果类型,它使用自己的拦截器堆栈和结果调用Action。此Interceptor允许Action将请求转发到目标Action,同时传播源Action的状态。以下是如何定义此序列的示例。
<package name="public" extends="struts-default">
<action name="createUserAccount"
class="net.onlineSolution.CreateAccountAction">
<result name="success" type="chain">login</result>
</action>
<action name="login"
class="net.onlineSolution.LoginAction">
<result name="success" type="chain">showDashboard</result>
</action>
<action name="showDashboard"
class="net.onlineSolution.DashboardAction">
<result name="success">/WEB-INF/jsp/dashboard.jsp</result>
</action>
</package>
在上面的代码中,我们定义了三个操作:createUserAccount,login和showDashboard。请注意每个操作如何使用标记链接到下一个操作。因此,当用户在系统中第一次登录时,将使用createAccount操作。创建帐户后,用户将转发到登录操作。
答案 2 :(得分:0)
好。通过使用简单的struts结果类型非常有可能。
要在单个操作中处理多个操作,您可以在结果属性中使用 <result name="success" type="redirectAction"></result>
。通过这些多项操作,您还可以使用 struts.xml 的 <param>
属性传递n个参数。以下示例代码供您参考: -
<result name="success" type="redirectAction">
<param name="actionName">[.. you can write another action here ..]</param>
<param name="[.. parameter name ..]">${.. parameter name ..}</param>
</result>