struts2在结果参数值中使用变量

时间:2015-08-20 18:45:57

标签: struts2 xml-configuration

我正在从变量构建struts2参数值,在一种情况下它可以工作,而在另一种情况下则不然。这是菜单项点击的“结果”:

<result name="WidgetList"  type="redirectAction">            
    <param name="actionName">actList</param>
    <param name="object">Widget</param>
</result>

动作映射:

<action name="actList" class="MyClass" method="execute">
    <interceptor-ref name="newStack" />
    <result name="success">
        <param name="location">jsp + ${object} + List.jsp</param>
    </result>
    <result name="Edit" type="redirectAction">            
        <param name="actionName">actEdit + ${object}</param>
    </result>
</action>

在“编辑”结果中(在用户单击列表中的Widget后返回)结果正确构建了actionName,并且该操作将运行以显示页面。

actEdit + ${object}

成为:

actEditWidget

然而,即使正确替换了$ {object}参数,重定向到'actList'的菜单点击也无法正确构建。

jsp + ${object} + List.jsp

成为字符串:

"jsp+Widget+List.jsp"

我得到了:

HTTP Status 404 - /MyApp/jsp+Widget+List.jsp

为什么这个在一个案例而不是另一个案例中工作......我怎么能'解决'这个?

1 个答案:

答案 0 :(得分:0)

戴夫是对的 - 只是把它压在一起确实有效,虽然它看起来真的很难看。

jsp${object}List.jsp

我仍然很想知道为什么存在差异,但由于某种原因,&#34;位置&#34;上面的param尊重param值中的每个字符。但是&#34; actionName&#34; param剥离内部空间并读取+和||作为连接。所以这有效:

a    ||    c    tEdi + t${object}   

对我没有任何意义,但至少我可以做我想做的事。

谢谢戴夫!