我有一个原始视图:一个包含可验证文本输入组件和一个命令按钮的表单。输入值指向会话范围的支持 bean。
我打开页面,输入无效值并提交表单:回发后,出现验证错误,输入组件显示未通过验证的提交值。正如预期的那样,我的会话范围 bean 中的模型值保持不变。
好的,现在我在浏览器中打开另一个选项卡并打开同一页面。令我惊讶的是,输入组件显示来自第一个选项卡的提交值。我一直假设视图状态在另一个 GET 请求中是新的,而我的会话范围 bean 中的纯模型值将被显示。
如果我使用视图范围的 bean 而不是会话范围的 bean,则将为第二个选项卡中的输入组件呈现模型值,而不是第一个选项卡中的提交值。
提交的值是否不是视图状态的一部分并以某种方式与模型一起保存?或者它的范围是否根据引用的 bean 的范围以某种智能方式调整?
如果这个问题很愚蠢,请提前抱歉,但我将非常感谢您消除我的误解。