我正在从变量构建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
为什么这个在一个案例而不是另一个案例中工作......我怎么能'解决'这个?
答案 0 :(得分:0)
jsp${object}List.jsp
我仍然很想知道为什么存在差异,但由于某种原因,&#34;位置&#34;上面的param尊重param值中的每个字符。但是&#34; actionName&#34; param剥离内部空间并读取+和||作为连接。所以这有效:
a || c tEdi + t${object}
对我没有任何意义,但至少我可以做我想做的事。
谢谢戴夫!