如何在 Struts2 中调用操作 class 创建
How to invoke Action class creation in Struts2
我有登录和计算 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 class 后,我得到 "success" 并移动到 calculation.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
?
为 LogingAction
添加一个结果以重定向到 CalculationAction
,并且 return 这个结果而不是 LogingAction
中的 "success"
。
<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>
"success"
上的 CalculationAction
应该 return 一个 calculation.jsp
并且计算动作将在值堆栈中,因此您可以在 calculationTypes
初始化时操作已执行。
我有登录和计算 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 class 后,我得到 "success" 并移动到 calculation.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
?
为 LogingAction
添加一个结果以重定向到 CalculationAction
,并且 return 这个结果而不是 LogingAction
中的 "success"
。
<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>
"success"
上的 CalculationAction
应该 return 一个 calculation.jsp
并且计算动作将在值堆栈中,因此您可以在 calculationTypes
初始化时操作已执行。