2013-01-15 100 views
2

JSF + Primefaces新手。 (使用JSF 2.1,Primefaces 3.4.2)在Primefaces JSF2.x中使用請求範圍管理bean

我有一個內部panelGroup,它使用Primefaces commandButton來獲取數據來填充各種表單組件的表單。 partialSubmit繞過尚未填充的字段的驗證問題,以便運行良好。該頁面的功能如預期,但現在我試圖調整實施是'更清潔'。

我的問題與我用於表單使用的支持bean的JSF範圍有關。使用會話範圍,一切都很好,但在使用請求範圍時沒有。我的理解是,'final'提交(通過另一個p:commandButton組件)和這個提取按鈕都是調用一個提交,以便對這兩者的響應構成請求生命週期的完成。如果我是正確的,這也解釋了爲什麼我得到(使用requst範圍)如下:
java.lang.IllegalStateException:使用取按鈕時的反應一直致力於

後不能創建一個會話。

但很明顯,這'打破'我的意圖的提取請求,只是導致表單通過bean使用更新的數據。

因此,我的理解是正確的:任何使用中間提交的設計模式(通過partialSubmit =「true」commandButton(默認啓用ajax行爲)將需要至少使用會話作用域支持bean? 理想情況下,具有實現請求和導航級別請求的機制可以允許這些中間提交在1請求的上下文中完成 或者我需要做一些額外的研究嗎?(獲取JSF 2 .X書,而不是用我的1.2複印件) MTIA的任何反饋

我取組件:?

<p:commandButton id="returningBtn" partialSubmit="true" value="Hit if returning" 
    process="nameInfo" actionListener="#{player.loadReturning}" update="registrationForm"> 
    <p:resetInput target="registrationForm" /> 
</p:commandButton> 

我最後的提交:

<p:commandButton tabindex="0" id="SubmitButton" value="Register" 
    action="#{player.register}" update="regPage"/> 

回答

3

的partialSubmit得到周圍行之有效尚未填充這樣的字段的驗證問題。

不,它不這樣做。它僅將process屬性中指定的輸入字段發送到服務器,而不是全部當前表單的輸入字段。這正是process屬性,它告訴哪些輸入需要處理(轉換,驗證和更新)。 partialSubmit="true"僅減少網絡帶寬和請求參數解析開銷。另見PrimeFaces blog on the subject


如預期,但現在我試圖調整,實現的是「清潔」的頁面功能。我的問題與我用於表單使用的支持bean的JSF範圍有關。使用會話範圍,一切都很好,但在使用請求範圍時沒有。

會話範圍確實是表單的錯誤範圍。您需要請求或視圖範圍。如果您的表單在後續提交時需要在同一表單中記住某個狀態,則需要查看範圍。另請參見​​


java.lang.IllegalStateException:響應一直致力於

這是recognizeable作爲固定在2.1鑽嘴魚科中的錯誤後不能創建一個會話。 8。如果無法升級,請參閱Adding <h:form> causes java.lang.IllegalStateException: Cannot create a session after the response has been committed以獲得幾種解決方法。


所以,我在我的理解是正確的具有使用中間提交(通過任何設計圖案partialSubmit =「真」命令按鈕(AJAX行爲是默認啓用)將要求至少使用會話的作用域確定爲支持豆?理想的情況下,將1所要求的範圍內做了具有實現的請求與導航水平的要求將允許這些中間提交機制。

至於說,你需要查看範圍


或者我需要做一些額外的研究? (得到一個JSF 2.x書,而不是使用我的1.2副本?)

當然。不僅JSF2以來的視圖範圍是新的,而且與JSF1相比,JSF2中的許多其他事情的做法都不同(閱讀:更優雅)。您可以在our JSF wiki page的底部找到幾個鏈接到理智的JSF2資源。

+0

很多,非常感謝您的幫助。我的道歉,我應該更具體的partiaSubmit評論 - 實際上我使用進程屬性限制提交/驗證只有在nameInfo面板中的組件。好消息是我可以升級到2.1.8 - 如果不能,我還會檢查你提供的鏈接。在Primefaces上做的很棒 - 我很感激它可用。 – Steve

+0

不客氣。注意:我不是PrimeFaces開發者,我只是PrimeFaces用戶。 OmniFaces是我的。 – BalusC

+0

我的錯誤 - 我在許多主題方面看到你處處處處。你提供的鏈接是寶貴的資源 - 我應該先利用它們。欣賞反饋。 – Steve

相關問題