spring-mvc - 如何通过前向传递模型属性以及模型的生命周期是什么
问题描述
我是初学者,我对控制器中的 Model 参数感到非常困惑。如果您能帮助我,我将不胜感激。
首先,什么时候Model实例,以及什么是Model的生命周期。我搜索了很多,他们说模型可以在一个请求中存活。这是我的代码。
我对这些结果很困惑。为什么第一个是真的,我认为 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不一样了?我认为模型属性仅在一种方法中起作用,但是,我将代码更改为此,
并且model.containsAttribute("p4") 是真的,好像模型也可以用其他方法起作用,我知道我们在工作中不会这样编码,但我真的很困惑,我无法得到答案,我没有看到有人问这种问题。
无论如何,谢谢你。
解决方案
推荐阅读
- python-3.x - VS Code Python 交互窗口无法导入`rasterio`
- discord.py - 消息无限重复——Discord.py
- python - 如何将列表理解与非理解项目混合在一起?
- python - 从二维二进制矩阵中提取直线
- python - 使用计算编号进行下一次计算
- swiftui - swiftui 2.0 图片库 onTapgesture 只显示数组中的第一张图片
- sequence - 如何从雪花序列中获取一个数字块
- android - 在 Mac OS 中找不到下面的 Flutter 路径
- azure - 通过 Java SDK 使用 UsernamePasswordCredential 对 Azure AAD 进行身份验证
- bitcoind - 在linux上编译比特币源代码(https://github.com/bitcoin/bitcoin)的问题