我以前从未在 JSF 中创建过自定义组件,所以我现在才注意到 encodeBegin()
、encodeEnd()
等方法接受 FacesContext
参数。
FacesContext
实例通常可以通过 FacesContext.getCurrentInstance()
接收。
所以,我想知道这些方法是否有 FacesContext
参数只是为了方便,或者一些不同的对象可以传递到那里(可能来自外部资源......)。如果后者是可能的,那么你能举个例子吗?
最佳答案
它们可能碰巧在不同的线程中运行。 FacesContext#getCurrentIsntance()
只能确定从 HTTP 请求执行的线程返回,因为它存储为 ThreadLocal
变量。
关于java - 为什么 UIComponent 中的 encodeXxx 方法接受 FacesContext 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2713079/