我有登录和计算JSP页面。计算页面包含列表,需要初始化的操作对象。这是login.xml
<struts>
<package name="default" extends="struts-default">
<action name="*Action" class="com.task.action.{1}Action">
<result name="success">/calculation.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
</struts>
calculation.jsp:
<s:form action="CalculationAction">
<s:select label="Types"
list="calculationTypes"
name="calculationType" value="getDefaultCalculationType"/>
<s:submit />
</s:form>
执行LoginAction类后,我获得了“成功”并转到calculate.jsp。问题是没有创建CalculationAction,并且jsp中的列表无法初始化。如果我调用http://localhost:8082/Task/CalculationAction.action
,则jsp页面正在正确创建。
我也尝试在登录页面中进行引用,它也有效。
<s:url id="calculationUrl" action="CalculationAction"> </s:url>
<div class="tab-wrapper">
<a href="login.jsp">Login Page</a>
<s:a href="%{calculationUrl}">Calculation Page</s:a>
</div>
如何在执行LoginAction
后使程序正常工作?
答案 0 :(得分:1)
为LogingAction
添加一个结果以重定向到CalculationAction
,并在"success"
中返回此结果而不是LogingAction
。
<action name="*Action" class="com.task.action.{1}Action">
<result name="success">/calculation.jsp</result>
<result name="input">/login.jsp</result>
<result name="successfulLogin" type="redirectAction">CalculationAction</result>
</action>
CalculationAction
上的"success"
应返回calculation.jsp
,计算操作将位于值堆栈中,因此您可以在执行操作时初始化calculationTypes
。 / p>