Is @Produces more efficient that a getter in an EL expression

℡╲_俬逩灬. 提交于 2019-12-03 18:18:07

问题


I'm wondering which of those two code snippets is more efficient.


First one

In userSearch.xhtml :

<rich:dataTable
    var="user"
    value="#{userSearchResultList}"
    rendered="#{not empty userSearchResultList}">
...
</rich:dataTable>

In UserSearchAction.java :

@Produces @RequestScoped
@Named("userSearchResultList")
public List<User> getResultList() {
    return resultList;
}

Second one

In userSearch.xhtml :

<rich:dataTable
    var="user"
    value="#{userSearchAction.resultList}"
    rendered="#{not empty userSearchAction.resultList}">
...
</rich:dataTable>

In UserSearchAction.java :

public List<User> getResultList() {
    return resultList;
}

In both solutions, my resultList variable is filled by a method UserSearchAction.search().

I'm using JBoss 7.0.2.Final and RichFaces 4.1.0.Final.

More generally, I wanted to know if it's better to write producers than to call sub-properties of some classes in JSF files.


回答1:


That depends on how your producer scopes what is being produced. If it's dependent scoped (meaning you don't have a scope on it, nor on the containing class) it ends up being the same, possibly less depending what it is you are having to do inside that method.

In your example it should be more efficient because that producer method should only be called once (per request).



来源:https://stackoverflow.com/questions/8592583/is-produces-more-efficient-that-a-getter-in-an-el-expression

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!