【问题标题】:How to pass parameters while redirecting to another Action using type=redirect?如何在使用 type=redirect 重定向到另一个 Action 时传递参数?
【发布时间】:2013-07-26 01:02:34
【问题描述】:

我需要将一个动作的参数传递给另一个动作,但它遇到了以下错误。

Messages:   
There is no Action mapped for namespace [/Product/Product] and action name [desc] associated with context path [].

struts.xml

 <package name="MyProducts" extends="default" namespace="/Product/Find">
 <result name="Desc" type="redirectAction">
                <param name="actionName">../Product/desc</param>
                <param name="id">${id}</param>
 </result>
 ....

 <package name="Product" extends="default" namespace="/Product">
    ..........

在第一个操作中(在命名空间/Product/Find 中),我正在设置具有 getter 和 setter 的 id。

在第二个操作中(在命名空间 /Product 中)我有一个 id 变量以及 getter 和 setter。

【问题讨论】:

  • 看起来空指针可能与映射有关。您能否仅使用浏览器中的地址栏直接重定向到的操作并确认您是否继续获取空指针?
  • @MichaelFreake 我忘记包含其中一个 gettes 但现在出现了映射问题

标签: java struts2 action-mapping


【解决方案1】:

在您的地址中添加另一个 ../ 试试这个 ../../Product/desc

或

我知道他的意思,我想我只需要回答你的问题而不提供任何其他方法,

   <result name="YOUR RESULT NAME" type="redirectAction">
           <param name="actionName">desc</param>
           <param name="namespace">/Product</param>
   </result>

不要在命名空间名称前加上 /,否则无效。 要重定向到默认包中的操作,请使用 / 作为命名空间参数。

【讨论】:

  • 根本不是最好的解决方案。
  • @AleksandrM 如果您知道更好的解决方案,请写在答案部分
【解决方案2】:

最好的选择是您可以使用会话对象在会话中设置变量,然后可以在重定向操作类中访问该会话。无论如何,我只是通过在重定向操作中传递变量来寻找您的答案。 .希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 2020-08-20
    • 2021-12-04
    • 2011-03-22
    • 1970-01-01
    相关资源
    最近更新 更多