2011-07-15 59 views
0

我使用的是JSF2.0/Primefaces,我使用了包含元素(項目名稱)的selectManyListbox,我應該恢復這些元素並根據選擇生成另一個selectManyListbox包含其他元素。當我嘗試從selectManyListbox恢復項目時出錯

首先,我試圖填補我的第一selectManyListbox養傷已選定的項目,但錯誤occure:

我的JSF:

<h:selectManyListbox size="3" value="#{TestAjax.selectedProjects} "> 
     <f:selectItems value="#{TestAjax.getMyListProject()}" /> 
    </h:selectManyListbox> 

我的豆:

private List<String> selectedProjects; // + getter + setter 
private List<SelectItem> MyListproject; 

    public List<SelectItem> getMyListProject() { 
     FindProject fproj =new FindProject(); 
      if (MyListproject == null) { 
      MyListproject = new ArrayList<SelectItem>(); 
      for (String val : fproj.FindListprojects()) { 
     MyListproject.add(new SelectItem(val)); 
     } 
    } 
return MyListproject; 
} 

錯誤的是:

javax.faces.FacesException: Target model Type is no a Collection or Array 
at  com.sun.faces.renderkit.html_basic.MenuRenderer.convertSelectManyValuesForModel(MenuRenderer.java:392) 
at com.sun.faces.renderkit.html_basic.MenuRenderer.convertSelectManyValue(MenuRenderer.java:129) 
at com.sun.faces.renderkit.html_basic.MenuRenderer.getConvertedValue(MenuRenderer.java:315) 
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030) 
at javax.faces.component.UIInput.validate(UIInput.java:960) 
at javax.faces.component.UIInput.executeValidate(UIInput.java:1233) 
at javax.faces.component.UIInput.processValidators(UIInput.java:698) 
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) 
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) 
at javax.faces.component.UIForm.processValidators(UIForm.java:253) 
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) 
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) 
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172) 
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76) 
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 

UPDATE: 問題解決

這是一個錯誤weard:大小= 「3」 應該是屬性的值了!

+0

42%接受率? –

+0

好你發現了這個問題。請關閉問題。 –

+0

「恢復」是什麼意思?我前兩天看到這個問題,但沒有回答,因爲我完全不知道你在說什麼。嘗試使用較少的外來詞,以便非英語原住民也能理解這個問題。 – BalusC

回答

0

PDATE:問題解決

這是一個錯誤weard:大小= 「3」 應該是屬性的值了!

+0

無法用Mojarra 2.1.1重現此問題。您使用的是JSF impl/version? – BalusC

相關問題