【发布时间】:2011-04-04 04:05:58
【问题描述】:
所以我正在尝试创建一个具有动态参数名称和值的操作重定向。我了解如何在 struts.xml 文件中为参数值执行此操作,但似乎无法正确评估参数名称。
<action name="SaveObject" method="save"
class="com.mysite.actions.ObjectAction">
<result name="success" type="redirectAction">
<param name="actionName">${actionName}</param>
<param name="${paramName}">${paramValue}</param>
</result>
</action>
现在 ${actionName} 和 ${paramValue} 我完全没有问题。 actionName、paramValue 和 paramName 在 ObjectAction 中都有适当命名的 getter/setter。
有谁知道我怎样才能让 ${paramName} 正确评估?它目前在 URL 中显示为“${paramName}”,我需要它作为 paramName 变量的值。由于我对 OGNL 的误解,我尝试使用 #paramName 和 %{paramName} 并且它们在 URL 中也都显示不正确。我也尝试过添加一个 parse=true 参数,但我相信 Struts 2 无论如何都会这样做。
【问题讨论】:
-
检查这个 SO 问题,也许它会帮助你SO Question
-
是的,我实际上是在发布自己的问题之前发现了这个问题。如果您查看据称有效的方法,它与我所写的基本相同,但我的似乎没有正确评估。不过谢谢!
-
这似乎有点奇怪,因为这应该可以工作。请检查您的 paramName 是否不应该为空,也不应该为空..
-
不为空。事实上,在结果中添加
<param name="test">${paramName}</param>表明当将 paramName 用作值时,它在 URL 中被正确评估,但在将其用作名称时仍然是错误的评估。这很奇怪。 -
这很奇怪,即使我现在一无所知..