我是JSF世界的新手,請幫助我在頁面中生成彈出窗口。在JSF中生成彈出框
這是我的要求我會在我的母版頁(父母)點擊每個鏈接我需要顯示一個彈出窗口,其中包含一些細節,我需要從數據庫中獲取流行註冊mbean。在彈出的對話框中,我將彈出幾個按鈕,對於每一個操作,我都會相應地進行數據庫操作。我嘗試過不同的方式,但失敗了。
我面臨的問題是,第一次彈出加載時它很好,並且按預期投影值。但它第二次顯示在init函數中的新值,我不能在屏幕上看到新的值,而是顯示第一個彈出的值。
我是JSF世界的新手,請幫助我在頁面中生成彈出窗口。在JSF中生成彈出框
這是我的要求我會在我的母版頁(父母)點擊每個鏈接我需要顯示一個彈出窗口,其中包含一些細節,我需要從數據庫中獲取流行註冊mbean。在彈出的對話框中,我將彈出幾個按鈕,對於每一個操作,我都會相應地進行數據庫操作。我嘗試過不同的方式,但失敗了。
我面臨的問題是,第一次彈出加載時它很好,並且按預期投影值。但它第二次顯示在init函數中的新值,我不能在屏幕上看到新的值,而是顯示第一個彈出的值。
所以(如果我正確理解你的問題),問題是第二次修改的bean的值沒有前往前端?
我很驚訝,這取決於它是否彈出或不彈出。
的幾點思考:
http://localhost:8080/myApp/myPopupURL
?#{name.javaBeanField}
吧?)request或session scoped?我目前沒有正在運行的JSF安裝程序,但是如果我這樣做了,我會嘗試使用鏈接創建單個JSF頁面。該鏈接將打開一個彈出窗口,指向一個靜態URL(如上面的示例)。靜態URL會映射到一個非常簡單的mbean,它做了一些簡單的事情,比如顯示一個int值,它是一個介於1到100萬之間的隨機數。
獲得這種工作至少可以排除其他任何錯誤的可能性。我有時會遇到JSF隨機出現異常並使用舊值刷新頁面的問題(因爲生命週期沒有完成)。
不確定它是否是標準的JSF(我很確定它不是,實際上),但是你的支持bean中應該有一個isPostBack()方法,它允許你知道你是否正在加載頁面第一次或在行動後重新加載它;如果可以使用isPostBack()方法,則只能在第一次加載頁面時從數據庫加載值,而不會覆蓋操作後的修改後的值。
好像與我有關的緩存,但檢查以下內容:
您是否檢查了您的faces-config.xml文件以確保您的bean在請求範圍內?
<managed-bean-scope>request</managed-bean-scope>
如果bean是在會話或應用範圍,豆是不是重新創建每次刷新頁面,以便在bean中的值不會改變時間。
瞭解如何顯示彈出窗口以及是否使用某個JSF組件來執行此操作將非常有用。如果您只是顯示一個隱藏的div(或者在加載母版頁時加載一次的任何內容),則可能不會再次渲染該div,因此數據未實現。
我不是JSF的這麼大的程序員,但我猜你需要JavaScript來觸發彈出單擊event.JSF是一個服務器端的Java框架,所以它可能無法打開一個新的窗口。我不是肯定爲這個答案。用於使用此鏈接學習JSF思想:http://www.javapassion.com/handsonlabs/jsfsimpleapps/#Exercise_1
MyFaces Orchestra支持多窗口應用程序開箱即用。
當你說「彈出窗口」是指新的瀏覽器窗口還是新的模式彈出窗口(例如浮動div)? – Damo 2009-03-26 00:21:22