Jsf Is@比EL表达式中的getter更高效

Jsf Is@比EL表达式中的getter更高效,jsf,richfaces,java-ee-6,el,cdi,Jsf,Richfaces,Java Ee 6,El,Cdi,我想知道这两段代码中哪一段更有效 第一个 在userSearch.xhtml中: ... 在UserSearchAction.java中: @产生@RequestScoped @命名(“userSearchResultList”) 公共列表getResultList(){ 返回结果列表; } 第二个 在userSearch.xhtml中: ... 在UserSearchAction.java中: public List getResultList(){ 返回结果列表; } 在这

我想知道这两段代码中哪一段更有效


第一个

userSearch.xhtml
中:


...
UserSearchAction.java
中:

@产生@RequestScoped
@命名(“userSearchResultList”)
公共列表getResultList(){
返回结果列表;
}

第二个

userSearch.xhtml
中:


...
UserSearchAction.java
中:

public List getResultList(){
返回结果列表;
}

在这两种解决方案中,my
resultList
变量由方法
UserSearchAction.search()
填充

我正在使用JBoss 7.0.2.Final和RichFaces 4.1.0.Final


更一般地说,我想知道编写生产者是否比调用JSF文件中某些类的子属性更好。

这取决于生产者如何定义所生成的内容。如果它是依赖作用域的(意味着它上没有作用域,也没有包含类),那么它最终是相同的,可能更少地取决于您在该方法中必须执行的操作


在您的示例中,它应该更有效,因为producer方法应该只被调用一次(每个请求)。

是的,这或多或少是我所想的。。。但我想知道JBoss中使用的代码是否最终使一个解决方案比另一个更好。。。但我想,在我做压力测试之前,我不可能真正知道。。。不管怎样,谢谢。只打一次电话,这很有道理!JSF可以多次解析属性,在极端情况下,每个请求可以解析数十次。生产者本质上是一种声明性的替代品,用于在实例变量中缓存数据。使用“便宜”的作用域可能比使用请求作用域更有效。我认为缺点是可读性。使用第二种方法,数据的来源更加明确。