gpt4 book ai didi

java - jsf - 传递 FacesContext 或使用 getCurrentInstance()

转载 作者:行者123 更新时间:2023-11-30 05:50:51 25 4
gpt4 key购买 nike

在我的 jsf 应用程序中,我有大量与 FacesContext 相关的静态实用程序方法。我总是问自己同样的问题?

我应该通过参数将上下文传递给方法吗?或者使用 FacesContext.getCurrentInstance()

例如:

public static <T> T getInstance(final Class<T> type, final FacesContext context, final String elExpression)
{
return context.getApplication().evaluateExpressionGet(context, elExpression, type);
}

出现更多的困惑,因为 validator 和转换器接口(interface)使用上下文作为参数。

可以有多个 FacesContext 吗?

最佳答案

调用 FacesContext.getCurrentInstance() 与传递它具有性能和功能影响。

您可能已经注意到,大多数 JSF API 本身都使用传递。这样做是因为传递比访问线程局部变量快得多。最重要的是,通过传递,调用链下游的方法可以更轻松地以受控方式包装 FacesContext。

因此通常 FacesContext.getCurrentInstance() 用于引导,然后您将使用传递。

如果它只涉及几个调用,并且冗长让您厌烦,请务必使用 FacesContext.getCurrentInstance()。请注意,如果它涉及许多调用,可能会对性能产生一些(小的)影响。

关于java - jsf - 传递 FacesContext 或使用 getCurrentInstance(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13536902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com