【问题标题】:Struts2 - forward by annotation with dynamic parameterStruts2 - 通过带有动态参数的注释转发
【发布时间】:2014-03-13 23:06:51
【问题描述】:

我正在尝试使用动态参数将操作结果转发到另一个操作。传递给第二个操作的参数具有"" 值。

@Result(name = "success", 
    location = "edit_service_subscribers", 
        type = "redirect", 
      params = {"selectedServiceId", "%{serviceId}"}
)

我在第一个动作中用 getter 和 setter 声明了 private String serviceId;, 和 private String selectedServiceId; 在第二个动作中使用 getter 和 setter。

问题在于填充参数的值。但是在哪里?

如何将动作类中全局变量的值传递给重定向参数?

【问题讨论】:

    标签: java dynamic parameters struts2 annotations


    【解决方案1】:
    1. 使用RedirectAction 重定向到另一个操作。
      Redirect 结果用于重定向到非操作 URL(如 外部 URL)。

    2. 这不是 OGNL:而不是

      "%{serviceId}"
      

      使用

      "${serviceId}"
      

    【讨论】:

    • 有不同的问题。我同意,应该使用redirectAction,但是我的第二个ACTION“edit_service_subscribers”已启动,参数“selectedServiceId”为空。我认为问题出在我填写参数值的第一个 ACTION 中。声明全局变量并填充值是否足够?
    【解决方案2】:

    我已经解决了。我不知道是怎么回事,但是 GETer 消失了……花了这么多时间……

    我的实际代码是:

    })
    @Results({
        @Result(name = "success", type = "redirectAction",params = {"namespace", "/", "selectedServiceId", "${serviceId}", "actionName", "edit_service_subscribers"})
    })
    

    效果很好。

    【讨论】:

      【解决方案3】:

      用这个替换你的行

      @Result(name = "success", location = "/department.jsp",
              type="redirect", params={"yourkey", "${passingvalue}"})
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-20
        • 1970-01-01
        • 2012-01-24
        • 1970-01-01
        • 2018-01-10
        • 1970-01-01
        相关资源
        最近更新 更多