1

摘自一本书,

对于无状态视图,组件树不能动态生成/更改(例如,JSTL 和绑定在无状态模式下不可用)。您不能动态创建/操作视图。

我完全理解以一种login形式进入无状态的概念。

我不明白的是作者的观点,JSTL和绑定在无状态模式下不可用。请说明。

4

1 回答 1

1

作者似乎对自己感到困惑或过于概括。

组件树当然仍然可以动态生成/更改。这不依赖于有状态/无状态模式。与有状态模式的唯一区别是这些动态操作不会在 JSF 状态中被记住,因此它们无法在回发中恢复。

如果在视图构建期间由@PostConstruct用户事件(例如通过binding属性引用的请求范围 bean 或postAddToView事件侦听器方法)启动了这些动态更改,它将在无状态模式下继续正常工作。它只会被重新执行。然而,如果方法逻辑又依赖于一些用户控制的变量/动作,例如请求参数或在先前回发期间调用的动作,或者它执行得太晚,例如在preRenderView事件期间,则不再保证视图将在后续回发的应用请求值阶段变得与呈现要提交的表单期间相同。在这种情况下,与有状态视图相比,处理表单提交的行为可能会“出乎意料地”不同。

于 2016-04-15T13:35:40.993 回答