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

标签 java jsf custom-component

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

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

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

最佳答案

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

关于java - 为什么 UIComponent 中的 encodeXxx 方法接受 FacesContext 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2713079/

相关文章:

java - Android InflaterInputStream 是否与流行的 ZLIB Windows 库相同?

jsp - 如何在 Facelets 页面中包含 JSP 页面?

JSF 2 复选框和 bool getter

java - 组件族、组件类型和渲染器类型之间的关系是什么?

java - JButton 子类在重绘期间具有自定义形状变化

java - Google Appengine 上的 NoSuchMethodError - 有没有好的方法来追踪并修复它们

java - 如何将元素添加到非连续索引的ArrayList中

java - Android 不使用 listFiles() 方法列出目录中的所有文件

ajax - 如何更新与 <p :commandButton ajax ="false">? 关联的消息组件

android - 在 Android Gridview 中显示复合项目