基本的に同じことを行う2つのコードがあります。2 つの異なる方法でデータテーブルを埋めます。ここにそれらがあります:
<h:dataTable binding="#{currentUser.ITEMS}" style=" width:505px;" id="userTable" value="#{currentUser.items}" var="user" >
<h:column>
</h:column>
<h:column>
<f:facet name="header">Account Number</f:facet>
#{user.name}
</h:column>
<h:column>
<f:facet name="header">Currency</f:facet>
#{user.surname}
</h:column>
</h:dataTable>
ここで、items はユーザーのアイテムを含む配列であり、currentUser は User 型のセッション スコープ クラス オブジェクトです。最初のコードでは、ユーザーがログインすると、データベースからすべてのアイテムを取得し、後で使用するためにセッションに追加します。この方法でテーブルに入力します。今2番目のバージョン:
<h:dataTable binding="#{user.ITEMS}" style=" width:505px;" id="userTable" value="#{user.items}" var="user" >
<h:column>
</h:column>
<h:column>
<f:facet name="header">Account Number</f:facet>
#{user.name}
</h:column>
<h:column>
<f:facet name="header">Currency</f:facet>
#{user.surname}
</h:column>
</h:dataTable>
2 番目の例では、ユーザーがシステムにログインするときに項目リストを保持しませんが、テーブルが入力されるたびに、データベース クエリを実行し、ユーザーの項目でテーブルを入力します。
だから私の質問は、どちらの方法が良いですか? 最初のケースでは、多くのセッション オブジェクトを使用することは有害である可能性がありますが、2 番目のケースでは、アイテム情報が必要になるたびにデータベース検索を行うことがわかります。では、空間や時間などの点で、一方の方法が他方よりも優れていると言えますか?