title: JSF h:selectOneMenu trouble: java.lang.IllegalArgumentException Cannot convert "string" of type class java.lang.String to interface java.util.List
body: <p>I have some JSF-trouble using h:selectOneMenu with a list from my backend bean:
  My xhtml file looks like this:</p>
  
  <pre><code>  &lt;f:view&gt;
      &lt;h:form id="serverOptions"&gt;
        &lt;h:selectOneMenu id="preset" value="#{overview.pdfPresets}" &gt;
          &lt;f:selectItems value="#{overview.pdfPresets}" /&gt;
        &lt;/h:selectOneMenu&gt;
        &lt;h:commandButton action="submit" value="Submit" /&gt;
      &lt;/h:form&gt;
    &lt;/f:view&gt;
  </code></pre>
  
  <p>where the corresponding managing bean looks like this:</p>
  
  <pre><code>private List&lt;String&gt; pdfPresets;
  private String pdfPreset;
  
  /**
   * Returns a list of pdfPresets
   * @return a List&lt;String&gt; of pdf preset names
   */
  public final List&lt;String&gt; getPdfPresets() {
      return pdfPresets;
  }
  
  /**
   * Sets the name of the selected pdfPreset
   * (trying to overload setPdfPresets here)
   * @param presetName
   * @see setPdfPreset
   */
  public final void setPdfPresets(String presetName) {
      // write preset name somehwere else
      this.presetName = presetName;
  }
  
  /**
   * Sets the pdfPresets
   * @param list
   */
  public final void setPdfPresets(List&lt;String&gt; list) {
      pdfPresets = list;
  }
  </code></pre>
  
  <p>The problem occurs on submitting the form in my browser, the full error stack looks like this:</p>
  
  <pre><code>EVERE: An exception occurred
  javax.faces.component.UpdateModelException: java.lang.IllegalArgumentException: Cannot convert screen_druckbogen of type class java.lang.String to interface java.util.List
      at javax.faces.component.UIInput.updateModel(UIInput.java:398)
      at javax.faces.component.UIInput.processUpdates(UIInput.java:299)
      at javax.faces.component.UIForm.processUpdates(UIForm.java:187)
      at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1258)
      at javax.faces.component.UIViewRoot._processUpdatesDefault(UIViewRoot.java:1317)
      at javax.faces.component.UIViewRoot.access$600(UIViewRoot.java:75)
      at javax.faces.component.UIViewRoot$UpdateModelPhaseProcessor.process(UIViewRoot.java:1419)
      at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1278)
      at javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:761)
      at org.apache.myfaces.lifecycle.UpdateModelValuesExecutor.execute(UpdateModelValuesExecutor.java:34)
      at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171)
      at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440)
      at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
      at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      at org.mortbay.jetty.Server.handle(Server.java:326)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
      at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
      at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
      at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
  Caused by: java.lang.IllegalArgumentException: Cannot convert screen_druckbogen of type class java.lang.String to interface java.util.List
      at com.sun.el.lang.ELSupport.coerceToType(ELSupport.java:397)
      at com.sun.el.parser.AstValue.setValue(AstValue.java:164)
      at com.sun.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:273)
      at org.apache.myfaces.view.facelets.el.TagValueExpression.setValue(TagValueExpression.java:117)
      at javax.faces.component.UIInput.updateModel(UIInput.java:380)
      ... 29 more
  </code></pre>