结果中的Struts2参数不起作用

时间:2015-04-27 17:48:05

标签: java jsp struts2 action param

看来我应该能够在strut.xml中定义PER结果中的参数,而不是全局,但我无法让它工作。这是有用的:

<action name="actThing" class="Thing" method="execute">
    <interceptor-ref name="newStack" />
    <param name="parentObject">Parent</param>
    <result name="Edit">jspEditThing.jsp</result>
    <result name="Add">jspAddThing.jsp</result>
</action>

在这种情况下,当调用Thing.execute时,会设置parentObject变量。但是在这里:

<action name="actThing" class="Thing" method="execute">
    <interceptor-ref name="newStack" />
    <result name="Add">
        <param name="location">jspAddThing.jsp</param>
        <param name="parentObject">Parent</param>
    </result>
    <result name="Edit">jspEditThing.jsp</result>
</action>

它没有。由于它在第一种情况下工作,我当然有适当的设置/ getter,我没有得到任何类型的错误。我错过了什么?

感谢。

2 个答案:

答案 0 :(得分:0)

它不起作用,它不应该是因为参数应用于结果,而不是动作。结果在动作之后执行,并且所有参数都应该已经设置。

  

param标记在CONTAINS ('%To be auctioned%') THEN 42对象上设置属性。最常见的属性是Result,它通常指定Web资源的路径。 location属性是另一个智能默认值。

答案 1 :(得分:0)

<action name="actThing" class="Thing" method="execute">
            <result name="Add">
                <param name="includeProperties">Parent.*</param>
            </result>
        </action>

现在,您的Parent对象及其所有属性和子对象都可用。