使用struts2重定向动态参数不起作用

时间:2013-01-08 11:27:26

标签: java java-ee parameters struts2 action

尝试使用动态参数重定向映射时遇到问题。

我在Struts2中的映射方式:

<action name="Delete" class="templateLalaAction" method="remove">
    <result name="success" type="redirect-action">
        <param name="actionName">LalaTemplatesDisplay</param>
        <param name="buId">${buId}</param>
    </result>
    <result name="failure" type="redirect-action">
        LalaTemplatesDisplay
    </result>
</action>

操作中的“删除”方法:

remove() {

    putRequestAttribute("buId",Long.valueOf("1111"));
    return SUCCESS;
}

如果我执行此操作,则设置buId=1111,但是当我运行应用时,urlbuId= (it's empty)结束,即没有传递任何参数。 如果我对putRequestAttribute方法发表评论,并设置struts将buId参数作为static值传递:

<action name="Delete" class="templateLalaAction" method="remove">
    <result name="success" type="redirect-action">
        <param name="actionName">LalaTemplatesDisplay</param>
        <param name="buId">1111</param>
    </result>
    <result name="failure" type="redirect-action">
        LalaTemplatesDisplay
    </result>
</action>

一切正常,urlbuId=1111结尾。

我也读过question,其中接受的答案教会我们做同样的事情,但如果我们阅读用户所做的评论,我们就会发现他遇到了同样的问题。我可能做错了什么?

1 个答案:

答案 0 :(得分:2)

在你的方法中,只需指定buId变量,你就需要在你的动作类中使用getter / setter。

public String remove() {
  buId = 1111l;
  return SUCCESS;
}

此外,您使用redirect-action的旧语法,使用驼峰案例redirectAction