【问题标题】:Object data lost between controllers控制器之间的对象数据丢失
【发布时间】:2012-11-15 01:23:14
【问题描述】:

我在控制器之间传输对象(作为modelAttribute)及其值时遇到问题。我有一个带有modelAttribute 的表格,比如"myObject",它有一些成员。我在第一个控制器中添加了modelAttribute "myObject" 来建模。

我能够在视图中读取和显示"myObject" 值的值,例如,我可以通过${myObject.memberName} 获取值,但是当涉及到将对象作为参数的第二个控制器时(我的意思是:modelAttribute("myObject")MyObject myObject) 成员设置为默认值,主要是null!

在表单中设置了一些值(它们工作正常),其余的值在第一个控制器中设置。我想在第二个控制器中获取第一个控制器中设置的值,但它们丢失了。

我应该如何传输modelAttribute 对象的值,以免在控制器之间丢失它们?我应该将它们放在HttpRequest paramaters 中吗?

【问题讨论】:

    标签: spring model-view-controller modelattribute


    【解决方案1】:

    HTTP 是一种无状态协议。所以你可以期望参数不会在请求之间徘徊。

    我应该将它们放在 HttpRequest 参数中吗?

    是的,如果您希望这些值可用于处理下一个请求的控制器,您需要将它们作为请求的一部分传递/以某种形式数据发布。

    如果您希望将数据提供给许多请求,您可以考虑将模型放在 HttpSession 中。

    【讨论】:

    • 好的,谢谢亚历克斯的回复。我使用@SessionAttributes 并在处理表单后遇到问题,但我发现我没有调用 SessionStatus 对象的 setCompleted 方法。再次感谢!
    • 没问题。很高兴您找到了所需的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多