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页面有一个searh按钮,其动作映射到#{mybackingbean.search} 。所以当我点击seach时,我希望在同一页面上只显示一个子集(基于搜索参数)。我遇到的问题是,“当我点击搜索按钮时,搜索方法被调用并返回一个视图名称。由于bean是请求作用域,因此在此之后创建了一个新的bean实例,最终创建了init方法覆盖结果。意思是,我得到相同的初始视图,显示所有项目,而不是只显示匹配的项目“。
这有什么问题?请指导我解决这个问题的理想方法。
答案 0 :(得分:1)
@ViewScope
<a4j:keepAlive>