2011-02-08 72 views
1

我在做一個JSF2項目。有關JSF的各種問題

1。我有一個複選框的表單。請看下面的代碼

<ui:repeat> 
<h:selectManyCheckbox value="#{wagent.selectedPra}">... 
</h:selectManyCheckbox> 
</ui:repeat> 

所以我用selectManyCheckbox內部UI:重複,我想的是,不同的selectManyCheckbox指向同一個值的值。 但是當提交表單時,我沒有選擇所有的框。 我該怎麼做?

2。我有一些輸入的表單。在我的行動中,我想合併一些PDF文件,保持在同一頁面上,並彈出似乎提供下載合併的文件。

3。是否爲每個請求創建了具有請求範圍的所有託管bean,或者只是在xhtml頁面中使用它們?

4。我有一個註銷的命令鏈接。在我的行動中,我使用session.invalidate()並返回「登錄」。所以我回到登錄,但是在驗證登錄時,我的會話託管bean似乎並未創建。錯誤是類似yourSessionBean爲空的。怎麼了 ?

+0

我對這種多問題的解決方式沒有任何問題,但是在將來你應該爲每個問題提出一個單獨的問題。這就是Stackoverflow對你的期望。這允許更細粒度的搜索和更好的匹配,並且它還允許單獨更好地處理/關閉問題(例如,它是重複的)。 – BalusC 2011-02-08 21:35:37

+0

好的,我會下次 – 2011-02-08 21:39:36

回答

2

1:所以我在ui中使用selectManyCheckbox:repeat,我希望不同的selectManyCheckbox的值指向相同的值。但是當提交表單時,我沒有選擇所有的框。我該怎麼做?

讓他們指向一個不同的值。用給定的例子,bean的值每次都會被覆蓋,直到循環結束。作爲一個例子,使用的bean創建一個List<List<Pra>>(或任何Pra手段,你的問題):

<ui:repeat value="#{wagent.allSelectedPra}" var="selectedPra"> 
    <h:selectManyCheckbox value="#{selectedPra}"> 
     ... 
    </h:selectManyCheckbox> 
</ui:repeat> 

2:我有一些輸入的形式。在我的行動中,我想合併一些PDF文件,保持在同一頁面上,並彈出似乎提供下載合併的文件。

至少兩件事情需要做:

facesContext.getExternalContext().addResponseHeader("Content-Disposition", "attachment;filename=name.pdf"); // Force "Save As" dialogue. 
facesContext.responseComplete(); // Prevent JSF from taking response in hands. 

3:是否所有請求範圍的管理豆爲每個請求或只是如果我使用他們創建xhtml頁面?

它們是爲每個HTTP請求創建的。你描述的範圍只適用於視圖範圍(如果我理解你的話)。

4:我有一個commandlink來註銷。在我的行動中,我使用session.invalidate()並返回「登錄」。所以我回到登錄,但是在驗證登錄時,我的會話託管bean似乎並未創建。錯誤是類似yourSessionBean爲空的。怎麼了 ?

您可能以錯誤的方式訪問會話作用域託管bean。您需要將其注入爲@ManagedProperty或通過Application#evaluateExpressionGet()來獲取它。