2010-07-27 77 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