title: form:select in spring MVC
body: <p>i have problem with from:select in Spring MVC.<br>
  The first model is <strong>Azienda.java</strong>:</p>
  
  <pre><code>@Entity
  @Table(name = "azienda")
  public class Azienda implements Serializable {
  
   private static final long serialVersionUID = 1787438745757438466L;
  
   private Integer id_azienda; // This is what i want to put in my "from:select" and retrieve 
   private String ragione_sociale;
   private String indirizzo;
  
  public Azienda() {  
  
  }
  
  @Id
  @GeneratedValue(strategy = GenerationType.SEQUENCE)
  @SequenceGenerator(name = "VA06148AE14539F54E6601582", sequenceName = "azienda_id_azienda_seq")
  @Column(name = "id_azienda", nullable = false)
  public Integer getId_azienda() {
      return this.id_azienda;
  }
  
  public void setId_azienda(Integer value) {
      this.id_azienda = value;
  }
  
  @Column(name = "ragione_sociale", nullable = false, length = 10)
  public String getRagione_sociale() {
      return this.ragione_sociale;
  }
  
  public void setRagione_sociale(String value) {
      this.ragione_sociale = value;
  }
  
  @Column(name = "indirizzo", nullable = false, length = 30)
  public String getIndirizzo() {
      return this.indirizzo;
  }
  
  public void setIndirizzo(String value) {
      this.indirizzo = value;
  }
  }
  </code></pre>
  
  <p>The second model <strong>Progetto.java</strong> which inherited from Class <strong>Azienda.java</strong> is:</p>
  
  <pre><code>@Entity
  @Table(name = "progetto")
  public class Progetto implements Serializable {
  
  private static final long serialVersionUID = 908957127555871179L;
  
  private int id_progetto;
  private String nome;
  private Integer costo;
  private Date data_inizio;
  private Date data_fine;
  private Azienda azienda;
  private String descrizione;
  
  public Progetto() {
  
  }
  
  @ManyToOne(optional = false)
  @JoinColumn(name = "azienda", referencedColumnName = "id_azienda")
  public Azienda getAzienda() {
      return this.azienda;
  }
  
  public void setAzienda(Azienda value) {
      this.azienda = value;
  }
  
  @Column(name = "workpackage")
  @OneToMany(mappedBy = "progetto")
  public Collection&lt;Workpackage&gt; getWorkpackage() {
      return this.workpackage;
  }
  
  public void setWorkpackage(Collection&lt;Workpackage&gt; value) {
      this.workpackage = value;
  }
  
  @Id
  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "VA06148AE14539F54E7001591")
  @SequenceGenerator(name = "VA06148AE14539F54E7001591", sequenceName = "progetto_id_progetto_seq")
  @Column(name = "id_progetto", nullable = false)
  public int getId_progetto() {
      return this.id_progetto;
  }
  
  public void setId_progetto(int value) {
      this.id_progetto = value;
  }
  
  @Column(name = "nome", nullable = false, length = 30)
  public String getNome() {
      return this.nome;
  }
  
  public void setNome(String value) {
      this.nome = value;
  }
  
  @Column(name = "descrizione", nullable = false, length = 180)
  public String getDescrizione() {
      return this.descrizione;
  }
  
  public void setDescrizione(String value) {
      this.descrizione = value;
  }
  
  @Column(name = "costo", nullable = false)
  public Integer getCosto() {
      return this.costo;
  }
  
  public void setCosto(Integer value) {
      this.costo = value;
  }
  
  @Column(name = "data_inizio", nullable = false)
  public Date getData_inizio() {
      return this.data_inizio;
  }
  
  public void setData_inizio(Date value) {
      this.data_inizio = value;
  }
  
  @Column(name = "data_fine", nullable = false)
  public Date getData_fine() {
      return this.data_fine;
  }
  
  public void setData_fine(Date value) {
      this.data_fine = value;
  }
  }
  </code></pre>
  
  <p>The <strong>controller</strong> of addProject is:</p>
  
  <pre><code>@Controller
  public class ProjectController {
  
  protected final Logger log = Logger.getLogger(ProjectController.class);
  
  @Autowired
  private AziendaService service;
  
  @RequestMapping(value ="/addProject", method = RequestMethod.GET)
  public String createProject(@ModelAttribute("progetto") Progetto progetto, Map&lt;String, Object&gt; model) {
      log.info("initiale createProject method.....");
  
      Collection&lt;Azienda&gt; collection = service.getAllCompany(); // Here i get all company in my DB 
      model.put("modelList", collection); // and i put them in this model to retrieve them in jsp
  
      return "addProject";        
  }
  
  @RequestMapping(value ="/addProject", method = RequestMethod.POST)
  public void addProject(@ModelAttribute("progetto") Progetto progetto) {
      log.info("initiale addProject method.....");
  
      log.info("project name :"+progetto.getNome());
      log.info("project costo :"+progetto.getCosto());
      log.info("data_inizio :"+progetto.getData_inizio());
      log.info("data_fine :"+progetto.getData_fine());
      log.info("azienda :"+progetto.getAzienda());
  
  }
  </code></pre>
  
  <p>The from in jsp with the Spring from tags is: </p>
  
  <pre><code>&lt;form:form method="post" action="addProject.htm" commandName="progetto"&gt;
  &lt;table&gt;
      &lt;tr&gt;
          &lt;th&gt;Project name:&lt;/th&gt;
          &lt;td&gt;&lt;form:input id="projectname" path="nome" type="text" class="inp-form" /&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;th&gt;Project cost:&lt;/th&gt;
          &lt;td&gt;&lt;form:input id="projectcost" path="costo" type="text" class="inp-form" placeholder="Ex: 1.00"/&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;th&gt;Start Date:&lt;/th&gt;
          &lt;td&gt;
              &lt;form:input id="startdate" path="data_inizio" type="text" class="inp-form"/&gt;
          &lt;/td&gt;
  
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;th&gt;End Date:&lt;/th&gt;
          &lt;td&gt;
              &lt;form:input id="enddate" path="data_fine" type="text"  class="inp-form" /&gt;
          &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;th&gt;Select Company:&lt;/th&gt;
          &lt;td&gt;
              &lt;form:select id="company" path="azienda" class="styledselect_form_1"&gt;
                  &lt;form:option value="" label="--Please Select"/&gt;
                  &lt;form:options items="${modelList}" itemValue="id_azienda" itemLabel="ragione_sociale"/&gt;
              &lt;/form:select&gt;
          &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;th&gt;Description:&lt;/th&gt;
          &lt;td&gt;&lt;form:textarea id="description" path="descrizione" cols="50" rows="8"
                  class="form-textarea" style="resize: none;"
                  maxlength="600"
                  onKeyPress="return ( this.value.length &lt; 600 );"
                  placeholder="Maximun 600 characters.."&gt;&lt;/form:textarea&gt;&lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;th&gt;&amp;nbsp;&lt;/th&gt;
          &lt;td&gt;
              &lt;input type="submit" value="" class="form-submit" /&gt;
              &lt;input type="reset" value="" class="form-reset"  /&gt;
          &lt;/td&gt;
          &lt;td&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/table&gt; 
  &lt;!-- end id-form  --&gt;
  &lt;/form:form&gt;
  </code></pre>
  
  <p>And When i filled out the from i have this error in Eclipse:</p>
  
  <pre><code>16:00:10,187 DEBUG [ExceptionHandlerExceptionResolver:] - Resolving exception from handler [public void spring.hibernate.controller.ProjectController.addProject(spring.hibernate.model.Progetto)]: org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
  Field error in object 'progetto' on field 'azienda': rejected value [1,]; codes [typeMismatch.progetto.azienda,typeMismatch.azienda,typeMismatch.spring.hibernate.model.Azienda,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [progetto.azienda,azienda]; arguments []; default message [azienda]]; default message [Failed to convert property value of type 'java.lang.String[]' to required type 'spring.hibernate.model.Azienda' for property 'azienda'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String[]] to required type [spring.hibernate.model.Azienda] for property 'azienda': no matching editors or conversion strategy found]
  16:00:10,187 DEBUG [ResponseStatusExceptionResolver:] - Resolving exception from handler [public void spring.hibernate.controller.ProjectController.addProject(spring.hibernate.model.Progetto)]: org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
  Field error in object 'progetto' on field 'azienda': rejected value [1,]; codes [typeMismatch.progetto.azienda,typeMismatch.azienda,typeMismatch.spring.hibernate.model.Azienda,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [progetto.azienda,azienda]; arguments []; default message [azienda]]; default message [Failed to convert property value of type 'java.lang.String[]' to required type 'spring.hibernate.model.Azienda' for property 'azienda'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String[]] to required type [spring.hibernate.model.Azienda] for property 'azienda': no matching editors or conversion strategy found]
  16:00:10,187 DEBUG [DefaultHandlerExceptionResolver:] - Resolving exception from handler [public void spring.hibernate.controller.ProjectController.addProject(spring.hibernate.model.Progetto)]: org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
  Field error in object 'progetto' on field 'azienda': rejected value [1,]; codes [typeMismatch.progetto.azienda,typeMismatch.azienda,typeMismatch.spring.hibernate.model.Azienda,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [progetto.azienda,azienda]; arguments []; default message [azienda]]; default message [Failed to convert property value of type 'java.lang.String[]' to required type 'spring.hibernate.model.Azienda' for property 'azienda'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String[]] to required type [spring.hibernate.model.Azienda] for property 'azienda': no matching editors or conversion strategy found]
  </code></pre>
  
  <p><code>rejected value [1,]</code> the <strong>1</strong> is number id in my DB <br/>
  i try to resolve it but i can't find nothing to help... Some one can help me???
  Thx.</p>