为什么UIComponent中的encodeXxx方法接受FacesContext参数?

时间:2010-04-26 11:38:14

标签: java jsf custom-component

我以前从未在JSF中创建自定义组件,所以我现在才注意到encodeBegin()encodeEnd()等方法接受FacesContext参数。

FacesContext实例通常可以通过FacesContext.getCurrentInstance()收到。

所以,我想知道这些方法是否只是为了方便FacesContext参数,或者可以在那里传递一些不同的对象(可能来自外部资源......)。如果后者是可能的,那么你能给出一个例子吗?

1 个答案:

答案 0 :(得分:3)

它们可能恰好在不同的线程中运行。 FacesContext#getCurrentIsntance()只能肯定从HTTP请求执行的线程返回,因为它存储为ThreadLocal变量。