我希望 BalusC 或一位 JSF 专家能够帮助我了解 JSF 生命周期的细节,尤其是渲染。
我很难理解的是,在渲染响应期间,从模型中获取值并将其显示给用户。现在,如果存在验证错误,则模型不会更新,因此渲染器必须向用户显示组件树中的无效值。这一切都很好,但是渲染器如何确定是从模型中读取,还是从组件树中读取?如果它来自组件树,这是否意味着如果请求通过验证并且事件处理程序在渲染之前更新模型值,这些值是否会反映给用户?
我已经阅读了很多有关 jsf 生命周期的内容,但我发现没有任何内容足以回答我的问题。我想准确地了解这些东西是如何工作的。
在应用请求值阶段,所有请求参数都设置为提交的值UIInput
by setSubmittedValue()
.
在验证阶段,只有且仅当值有效时,提交的值才会设置为null
并且转换和验证的值设置为UIInput
by setValue()
。因此,如果该值无效,则提交的值不会被设置为null
.
在更新模型值阶段,模型值将使用该值进行更新。
在渲染响应阶段,UIInput
渲染器首先检查是否getSubmittedValue()
不回来null
。如果没有(因此验证失败),则显示它。否则只显示模型值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)