3

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

我在 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,但是当我运行应用程序时,以url结尾buId= (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>

它有效,并以 .url结尾buId=1111

我还阅读了这个问题,其中接受的答案教我们做同样的事情,但如果我们阅读用户所做的评论,我们会看到他有同样的问题。我可能做错了什么?

4

1 回答 1

2

在您的方法中只需分配buId变量,您需要在您的操作类中为它设置 getter/setter。

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

此外,您使用的是旧语法redirect-action,使用驼峰式大小写redirectAction

于 2013-01-08T11:34:02.610 回答