摘自一本书,
对于无状态视图,组件树不能是动态的 生成/更改(例如,JSTL和绑定不可用于 无国籍模式)。您无法动态创建/操作视图。
我完全理解以login
形式进行无状态的概念。
我不明白的是作者的观点, JSTL和绑定在无状态模式中不可用。请澄清。
答案 0 :(得分:1)
作者似乎对自己感到困惑或过分夸大了一点。
组件树当然仍然可以动态生成/更改。这不依赖于有状态/无状态模式。与有状态模式的唯一区别是这些动态操作不会在JSF状态中被记住,因此它们无法在回发中恢复。
如果在视图构建期间由非 -user事件启动这些动态更改,则无状态模式将继续正常工作,例如通过请求范围bean引用的@PostConstruct
binding
属性或postAddToView
事件侦听器方法。它只会被重新执行。然而,如果方法逻辑依赖于一些用户控制的变量/动作,例如请求参数或在先前回发期间调用的动作,或者它执行得太晚,例如在preRenderView
事件期间,则它不再是保证视图在应用请求值期间将后续回发的阶段变为与呈现要提交的表单时相同。在这种情况下,与有状态视图相比,处理表单提交可能表现得“意外”不同。