我有一個示例用例:我有一個使用GET參數「id」的編輯頁面。 例如。編輯?id = 1打開一個新選項卡不要創建新的ViewAccessScoped bean
此編輯頁面由ViewAccessScoped(CODI)Bean支持。
在這個編輯頁面中,我有一個鏈接到相同的「編輯」頁面,但與另一個ID鏈接的數據表。 (例如,編輯?id = 2)
<h:link value="#{mecaPart.id}" outcome="edit" target="_blank">
<f:param name="id" value="#{mecaPart.id}" />
</h:link>
問題是,窗口打開正確,但它是使用相同的bean!所以我正在編輯相同的部分...
我已經在@PostConstruct中放置了一個日誌,它是多次調用的相同的bean引用。 (即使有新的ID!)
我的問題,我怎麼能告訴JSF創建一個新的ViewAccessScoped支持bean,當我點擊鏈接,而不是重新使用實際使用的?
ViewAccessScoped使用相同的bean實例,只要URL是相同的,顯然它不考慮GET參數。你必須使用ViewScoped。您使用ViewAccessScoped的原因有哪些? – Damian 2013-04-29 17:59:22
嗯,我認爲ViewScoped只能使用@ManagedBean而不是CDI。我重新閱讀CODI文檔,你說得對,我沒有理由使用ViewAccessScoped。 (CODI自動將CDI擴展添加到ViewScoped)。這正在工作,謝謝! – 2013-04-30 07:49:23