给定以下场景: jsf 组件(例如,CommandButton)的渲染属性依赖于应用程序范围的托管属性。由于该属性在所有会话中共享,因此很容易发生以下情况:用户 A 加载了一个 jsf 页面,并且按钮的 render 属性为 true,因此它被渲染。现在用户 B 也加载了页面,并且 render 属性仍然为 true。现在用户 A 单击导致属性更改其值的按钮,并且不再呈现该按钮。用户 B 仍然拥有旧视图,尽管现在渲染属性为 false,但他可以单击按钮,因为他同时没有更新他的视图。如果用户 B 点击按钮,现在会发生什么?
我认为无论如何都会触发按钮的操作,因为一旦渲染页面,render 属性仅用于渲染按钮并且不再有影响。但是在做了一些测试之后,在我看来,在单击按钮后还会再次检查渲染属性,如果该属性为 false,则不会执行该操作。有人可以证实这一点吗?