Announcement

Collapse
No announcement yet.

SelectManyCheckbox mit Map im value

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SelectManyCheckbox mit Map im value

    Ich habe ein Problem mit "h:selectManyCheckbox". Wenn ich ein Submit mache, tritt folgende Exception auf:


    Code:
    java.lang.IllegalArgumentException: ValueBinding for UISelectMany must be of type List or Array
    	org.apache.myfaces.shared_impl.renderkit._SharedRendererUtils.getConvertedUISelectManyValue(_SharedRendererUtils.java:191)
    	org.apache.myfaces.shared_impl.renderkit.RendererUtils.getConvertedUISelectManyValue(RendererUtils.java:630)
    	org.apache.myfaces.shared_impl.renderkit.html.HtmlCheckboxRendererBase.getConvertedValue(HtmlCheckboxRendererBase.java:308)
    	javax.faces.component.UISelectMany.getConvertedValue(UISelectMany.java:308)
    	javax.faces.component.UIInput.validate(UIInput.java:350)
    Ich verwende einen Converter, der mir Objekte vom Typ "Language" zurückgibt (für getAsObject(...)). Demzufolge bin ich der Meinung, dass der darunter liegende Value eine Liste vom Typ List<Language> sein sollte.

    Hier zur Veranschaulichung der Web-Code:

    <h:selectManyCheckbox value="#{processor.languages.languages1}">
    <f:converter converterId="languageConverter" />
    <f:selectItems value="#{categoryController.allLanguagesAsSelectIt ems}" />
    </h:selectManyCheckbox>


    Meine Backing Bean sieht als Ausschnitt folgendermaßen aus:

    Code:
    	public Map<String, List<Language>> getLanguages() {
    		return languagesMap;
    	}
    Ich versuche also per Map den Value zu lesen und zu schreiben (ohne setLanguages()-Methode). Die EL-Anweisung im Web-Code ist dafür zuständig: #{processor.languages.languages1}. "languages1" wäre in diesem Fall also mein Schlüssel in der Map.

    Warum wird die obige Exception geworfen? Beim Auslesen der values scheint es ja keine Probleme zu geben.
Working...
X