如何在Struts2

时间:2015-08-06 15:41:30

标签: java jsp configuration struts2 action

我有登录和计算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后使程序正常工作?

1 个答案:

答案 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>