首页 > 解决方案 > 如何通过前向传递模型属性以及模型的生命周期是什么

问题描述

我是初学者,我对控制器中的 Model 参数感到非常困惑。如果您能帮助我,我将不胜感激。

首先,什么时候Model实例,以及什么是Model的生命周期。我搜索了很多,他们说模型可以在一个请求中存活。这是我的代码。

html表单

POJO 类

控制器

安慰

我对这些结果很困惑。为什么第一个是真的,我认为 model.asMap().get("person") 将是 null 因为我从来没有在这行之前写过 model.addAttribute("person",person) ,在这行之后,我使用model.addAttribute("p2",person) 并使用forward转到另一个控制器,我认为它与servlet中的request.getservletdispatcher().forward相同,它确实是一个请求,模型将传递给第二个控制器,和 model.containsAttribute("p2") 应该是真的。那么,模型属性仅在一种方法中起作用吗?但我注意到控制台中的第三个输出,我认为这意味着人员对象可以传递给这个控制器。但是为什么人可以传入这个控制器而模型不能呢?

控制器

但是在我把控制器改成这个之后,它可以得到值并且Person ppp不为null。这么说模型真的跟httpservletrequest不一样了?我认为模型属性仅在一种方法中起作用,但是,我将代码更改为此,

添加一个函数@modelAttribute

并且model.containsAttribute("p4") 是真的,好像模型也可以用其他方法起作用,我知道我们在工作中不会这样编码,但我真的很困惑,我无法得到答案,我没有看到有人问这种问题。

无论如何,谢谢你。

标签: spring-mvc

解决方案


推荐阅读