我有 selectManyCheckbox,但在更改事件后我无法从中获取检查值(所选值列表保持为空)。触发更改事件,但在调试模式下,listSelectedSignalCauses 中没有值。我试图设置一些转换器,但它也没有帮助(也许它是错误的转换器)。
<p:selectManyCheckbox value="#{SignalAnalysisBean.listSelectedSignalCauses}" layout="pageDirection" styleClass="lstSignal">
<f:selectItems value="#{SignalAnalysisBean.listSignalCauses}" var="causes" itemValue="#{causes}" itemLabel="#{causes.name}" />
<p:ajax process="@this" update="test" event="change" listener="#{SignalAnalysisBean.checkCausesList}" />
</p:selectManyCheckbox>
<h:outputText value="#{SignalAnalysisBean.arrSize}" id="test" />
public class SignalAnalysisBean extends AbstractBean {
private List<GeneralCollDTO> listSignalCauses;
private List<GeneralCollDTO> listSelectedSignalCauses;
//...
public void checkCausesList(){
arrSize = 4 + listSelectedSignalCauses.size();
}
//...
}
public class GeneralCollDTO {
private String name;
private String value;
public GeneralCollDTO() { }
public GeneralCollDTO(String n, String v) {
this.name = n;
this.value = v;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}