首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSF在会话中存储UIComponents吗?

JSF在会话中存储UIComponents吗?
EN

Stack Overflow用户
提问于 2014-05-04 23:21:10
回答 2查看 83关注 0票数 0

喂,

我是JSF的新手,我读过JSF如何存储UIComponents或会话中常见的屏幕。一些问题:

  1. 例如,当您请求一个jsf文件时,JSF首先分析它并使用他的呈现器、验证器和转换器在内存中创建屏幕表示,因为JSF将在下一次更快地处理来自此视图的请求,因为它已经用他的验证器转换器创建了这个UIComponent结构.对吗?
  2. 使用带有java代码的JSF,您可以像java一样修改呈现给用户的屏幕,对吗?
  3. 这些屏幕是在会话中保存的,对吗?
  4. 我不知道的是,当用户(例如,按下浏览器中的back按钮)发送值时,JSF是否可以重新填充表单,这有可能吗?
  5. 表单字段的值保存在模型bean中,但是这些值存储在其他地方?,可能是在UIComponent结构中?
  6. 如果用户按下浏览器的后退按钮,而他在表单中发送的值保存在具有请求范围的bean中,那么它将无法重新填充表单,除非它将表单的值存储在UIComponent结构中,对吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2014-05-04 23:38:04

  1. 可能有一些缓存,但据我所知,它并不是设计或规范所固有的。
  2. 您可以修改演示文稿,是的;就像javax、swing、no。
  3. 不是的。
  4. 如果浏览器重新发送帖子,则会发生与第一次相同的情况。表单字段值是resent的,JSF处理它们,与以前一样,
  5. 表单字段的值位于表单字段和通过EL指定为值的任何后台bean属性中。
  6. 见(4)。同样的问题,同样的答案。
票数 0
EN

Stack Overflow用户

发布于 2014-05-06 15:56:16

对于你的主题问题:默认情况下,是的。除非该组件被标记为瞬态

对于你们的问题:

1.)这并不仅仅是为了快速。视图的恢复是必要的,因为它包含有关所需的转换器、验证器和UI与bean之间的连接的信息。即EL表达式。如果您没有活动视图,并且触发回发请求(使用ViewState),您将得到一个ViewExpiredException。如果在没有ViewState的情况下触发请求,将生成一个新视图。

2.)基本上是的。这就像swing一样,您可以以务实的方式向树中添加新组件。

3.)默认情况下是的。但是您可以编写自己的StateManager,也可以在任何地方存储和检索视图。

4.)后退按钮(默认情况下)返回浏览器的历史记录并显示缓存中的页面。如果您的视图不是临时视图,则可以将其存储在会话中,除非它太旧(请参阅对应上下文仿射)。如果触发来自旧视图的请求,且该视图仍在会话中,则将正确处理该请求。否则,它将在ViewExpiredException阶段抛出一个APPLY_REQUEST。

5.)这些值存储在bean中。该组件只包含指向bean属性的EL表达式

6.)见4.)和5.)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23462686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档