2013-04-29 62 views
2
<c:set var="product" value="#{productDAO.findByCode('code')}" /> 
#{product.name} 
#{product.name} 

我想從DB中檢索一個對象並將其存儲到一個變量中。 但是,我發現每次訪問產品時都會調用數據庫。 在上面的示例中,有兩個對數據庫的調用。JSF c:設置評估

+1

你不應該從視圖中調用模型。 – 2013-04-29 21:04:00

+0

@Ravi這不是很有幫助。 – 2013-04-29 21:14:27

+0

模型無法啓動DAO代碼並將bean設置爲View作用域的任何原因?我相信'#{product.name}'會正常工作。 – 2013-04-29 21:17:28

回答

5

您需要明確指定範圍。

<c:set var="product" value="#{productDAO.findByCode('code')}" scope="request" /> 

正確的方法,但是,是創建和使用請求範圍管理的bean,並把這個邏輯在其@PostConstruct

+0

沒有'範圍'attr'產品'進入'Page'範圍。如何將'scope'設置爲'request'來改變當前行爲?請幫助理解。 – 2013-05-01 14:49:57

+0

@Ravi:恩,它進入請求範圍。 – BalusC 2013-05-01 15:11:43

+0

是的,我明白,但它如何防止OP的問題? ''我發現每次訪問產品時都會調用數據庫。「' – 2013-05-01 15:36:11