我有selectManyCheckbox,但我無法從更改事件後檢查值(選定值列表保持空白)。 更改事件被觸發,但在調試模式下,listSelectedSignalCauses中沒有值。 我試圖設置一些轉換器,但它也沒有幫助(也許這是錯誤的轉換器)。Primefaces selectManyCheckbox
<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;
}
}
仍然無法正常工作。我添加了一個轉換器,有點不同,然後是一個。它返回字符串和對象填充複選框列表和處理選定的選項(我在調試模式下看到的值),但然後我得到的信息「一個值是無效的」。 轉換爲字符串工作正常,但轉換爲對象時出錯。 – Zivko 2014-09-25 11:31:27
公共對象的getAsObject(FacesContext的CTX,的UIComponent組件,字符串值){ \t嘗試{ \t \t如果(值!= NULL && value.trim()。長度()> 0){\t \t 列表列表= getBean(TestBean.class).getListRiskOutcomes(); \t爲(GeneralCollDTO項目:名單){ \t \t如果(value.equals(item.getValue())){ \t \t \t回報新GeneralCollDTO(item.getName(),值); \t \t} \t \t \t}} 回報 空; } catch(Exception e){ e.printStackTrace(); 返回null; } } –
Zivko
2014-09-25 11:32:14