0
我在我的應用程序中使用JSF和Hibernate。假設我有一個用戶帳戶,其問題是我想要使用<ui:repeat>
在<ul>
無序列表中顯示。如果沒有問題,我不想呈現列表,而是顯示「無問題」文本。我目前帳戶的方式如下:在JSF中避免多餘的數據庫查詢並有條件地呈現一個UI:重複使用
<ul>
<ui:repeat value="#{user.questions}" var="question">
<li>#{question.text}</li>
</ui:repeat>
</ul>
<h:outputText rendered=#{user.questions.size() == 0}">no questions</h:outputText>
有兩個問題,雜散<ul>
標籤,如果沒有其他問題。
我應該將它封裝在另一個面板中,再次使用rendered=#{user.questions.size() > 0}
,因爲它似乎ui:repeat
不接受呈現的屬性。
第二個問題是,user.questions.size()
計算兩次(和user.questions
是在兩個不同的地方訪問),這是否意味着兩個命中爲同一個變量在db?
謝謝,我實際上通過從Hibernate的DAO獲取User.Question數據。你知道Hibernate是否緩存(是二級緩存相關的),還是我應該按照你的建議編寫一個包裝? – ustun
@ustun - 我會問一個新的問題,詳細說明你如何使用/如何配置你的DAO並用Hibernate標記它。 – McDowell