私はこれらの2つのコードスニペットのどちらがより効率的であるか疑問に思っています。 UserSearchAction.java
で@ProducesはEL式のゲッターより効率的です
<rich:dataTable
var="user"
value="#{userSearchResultList}"
rendered="#{not empty userSearchResultList}">
...
</rich:dataTable>
:userSearch.xhtml
で
まず1
@Produces @RequestScoped
@Named("userSearchResultList")
public List<User> getResultList() {
return resultList;
}
セカンドuserSearch.xhtml
で:
<rich:dataTable
var="user"
value="#{userSearchAction.resultList}"
rendered="#{not empty userSearchAction.resultList}">
...
</rich:dataTable>
UserSearchAction.java
で:両方のソリューションで
public List<User> getResultList() {
return resultList;
}
、私の変数はメソッドUserSearchAction.search()
で満たされています。
私はJBoss 7.0.2.FinalとRichFaces 4.1.0.Finalを使用しています。
もっと一般的には、JSFファイルの一部のクラスのサブプロパティを呼び出すよりも、プロデューサを書く方が良いかどうかを知りたかったのです。
はい、これは多分私が考えていたものでしたが、JBossで使用されているコードが最終的に他のソリューションより優れているかどうかを知りたかったのですが、実際にはわかりませんでした私はストレステストをするまで...とにかく感謝します。 –
一度しか呼びたくないという良い点! JSFは何度もプロパティを解決できますが、極端な場合はリクエストごとに数十回です。プロデューサは、本質的に、インスタンス変数のデータをキャッシュするための宣言的な代替品の一種です。要求スコープよりも「安い」スコープを使用する方が効率的かもしれません。私が思うところは、読みやすさです。 2番目のアプローチでは、データがどこから来るのかがより明確になります。 –