Java selectBooleanCheckbox在过滤数据表更新后未更新
我们有一个包含3列的数据表,第一列有一个selectBooleanCheckbox,最后两列有outputText 我们还为此表设置了一个过滤器,根据过滤器布尔值显示或隐藏行 用于数据表的实体由以下3列属性组成:1个布尔值,2个字符串。见下文 问题是,当我们在第一列中选择一个筛选器(如“是”)并单击“更新”按钮时,表将被更新,但未应用筛选器,因此表筛选器不会被刷新 复制步骤:Java selectBooleanCheckbox在过滤数据表更新后未更新,java,jsp,primefaces,Java,Jsp,Primefaces,我们有一个包含3列的数据表,第一列有一个selectBooleanCheckbox,最后两列有outputText 我们还为此表设置了一个过滤器,根据过滤器布尔值显示或隐藏行 用于数据表的实体由以下3列属性组成:1个布尔值,2个字符串。见下文 问题是,当我们在第一列中选择一个筛选器(如“是”)并单击“更新”按钮时,表将被更新,但未应用筛选器,因此表筛选器不会被刷新 复制步骤: 加载页面,不要修改任何复选框 选择过滤器“是” 按更新按钮 数据表未更新 这是我的实体。java 公共类实体{ 布尔启用
公共类实体{
布尔启用;
私有字符串标签;
私有字符串描述;
公共实体(启用布尔值、字符串标签、字符串描述){
this.enabled=已启用;
this.label=标签;
this.description=描述;
}
公共布尔getEnabled(){
返回启用;
}
已启用公共void集(已启用布尔值){
this.enabled=已启用;
}
公共字符串getLabel(){
退货标签;
}
公共void setLabel(字符串标签){
this.label=标签;
}
公共字符串getDescription(){
返回说明;
}
公共void集合描述(字符串描述){
this.description=描述;
}
}
这是我的简单豆子
import java.util.ArrayList;
导入java.util.List;
导入org.springframework.context.annotation.Scope;
导入org.springframework.stereotype.Controller;
@控制器
@范围(“视图”)
公共类TestBean{
私人名单;
公共TestBean(){
列表=新的ArrayList();
/*填充示例*/
添加(新实体(正确,“账簿”,“这是C账簿”);
列表。添加(新实体(假,“屏幕”,“21\“HP屏幕”);
添加(新实体(真,“游戏”,“你赢了100万”);
}
/*
*更新列表,在实际应用程序中,它稍微复杂一点
*但是我简化了它,这个问题对于这些东西也是可以重现的。
*/
公共无效更新(){
实体;
/*“禁用”第三个,因为我们没有赢*/
实体=list.get(2);
实体.setEnabled(false);
}
公共列表getList(){
退货清单;
}
公共无效集合列表(列表){
this.list=列表;
}
}
这是我的过滤布尔值的小bean
import java.io.Serializable;
导入java.util.ArrayList;
导入java.util.List;
导入javax.faces.context.FacesContext;
导入javax.faces.model.SelectItem;
导入org.springframework.context.annotation.Scope;
导入org.springframework.stereotype.Controller;
/**
*类BooleanListBean。
*/
@控制器
@范围(“会议”)
@抑制警告(“串行”)
公共类BooleanListBean实现了可序列化{
/**
*实例化一个新的布尔列表bean。
*/
公共BooleanListBean(){
超级();
}
/**
*获取选项。
*
*@返回选项
*/
public SelectItem[]获取选项(){
最终列表选项=新建ArrayList();
最终FacesContext FacesContext=FacesContext.getCurrentInstance();
选项。添加(新选择项(“,”选择“);
添加(新的SelectItem(Boolean.FALSE.toString(),“No”);
添加(新的SelectItem(Boolean.TRUE.toString(),“Yes”);
返回选项。toArray(新建SelectItem[0]);
}
}
最后是xhtml文件
我认为dataTable应该有筛选值标记
filteredValue="#{testBean.filteredList}"
在testBean中添加一个过滤器列表并引用它。这看起来像是一个代码审查项目。除非你能缩小这个问题的范围,否则很少有人会想彻底解决这个问题。你为什么用JSP标记这个问题?你根本没有用JSP。XHTML文件来自它的后续Facelets。你在那里使用的XML标记来自JSF fra我的工作。