2010-07-27 78 views
0
public class MyBackingBean{ 

private List model; 

public String search(){ 
    //change model data 
    model = doSearch(); 
    return "same_view" 
} 

@PostConstruct 
public void init(){ 
    model = loadDefault() 
} 

//Other code omitted for clarity 
} 

而且在JSP中,由於種種原因我用C:的foreach遍歷模型,並顯示一個HTML表格中的項目。 jsp頁面有一個搜索按鈕,其操作映射到#{mybackingbean.search}。所以當我點擊搜索時,我希望在同一頁面上只顯示一個子集(基於搜索參數)。我遇到的問題是,「當我點擊搜索按鈕時,搜索方法被調用,並返回一個視圖名稱。由於bean是請求作用域,所以在此之後創建了一個新的bean實例,最終創建了init方法覆蓋結果。意思是,我得到相同的初始視圖,它顯示所有的項目,而不是隻顯示匹配的項目「。問題與JSF表單提交

這有什麼問題?請指導我解決這個問題的理想方法。

回答

1
  • 不使用重定向,使用前(在您的導航的情況下)
  • 如果使用JSF 2.0,使用@ViewScope
  • 檢查MyFaces的樂團
  • 嘗試<a4j:keepAlive>從RichFaces的
+0

哪有我修改我的導航案例來使用forward而不是重定向。你能給個例子嗎? – user378101 2010-07-27 06:54:32

+0

@user只是一個建議 - 考慮將JBoss Seam與JSF結合使用,並將視圖切換爲facelets而不是JSP。這是一個更好的組合。您可以在未來的項目中嘗試。 – 2010-07-27 07:01:21

+0

它默認使用轉發。 – Bozho 2010-07-27 07:18:11