Was mache ich hier falsch?Fehler beim Konvertieren des Eigenschaftswerts vom Typ 'java.lang.String'
<select th:field="*{role}">
<option value="#" disabled = "disabled" selected="selected">Role...</option>
<option th:each="r : ${roles}" th:value="${r}" th:text="${r.name}">Developer</option>
</select>```
Ich erhalte diese Fehlermeldung:
Field error in object 'collaborator' on field 'role': rejected value [33]; codes [typeMismatch.collaborator.role,typeMismatch.role,typeMismatch.com.imprender.instateam.model.Role,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [collaborator.role,role]; arguments []; default message [role]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'com.imprender.instateam.model.Role' for property 'role'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'com.imprender.instateam.model.Role' for property 'role': no matching editors or conversion strategy found]
Dort heißt es:
Failed to convert property value of type 'java.lang.String' to required type 'com.imprender.instateam.model.Role' for property 'role'
aber ich verstehe nicht, wo ich das tue.
Ich denke, ich bin nicht richtig übertragen den Wert ausgewählt in der. Ich dachte, das Objekt wäre das, das in der Option value
deklariert wurde, die ausgewählt wird, aber offensichtlich habe ich es falsch verstanden und kann den Weg nicht finden, es richtig zu machen.
Das Modell:
package com.imprender.instateam.model;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
@Entity
public class Collaborator {
@Id
//Todo: check strategy
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
@Pattern(regexp = "([A-Z][a-zA-Z]*\\s*)+")
private String name;
//Todo: check, do we want to create a new table to associate values?
@NotNull
@ManyToOne
private Role role;
public Collaborator() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
}
Sie bitte eine der duplizierten Fragen ändern oder entfernen Sie erstellt haben, entweder diese Frage oder [diese one] (https://stackoverflow.com/questions/46491380/failed-to-convert-property -value-of-type-java-lang-string-to-required-type-c) – juanlumn
Könnten Sie uns weitere Informationen geben? wie das Modell, das du rendern willst ... – juanlumn
Fertig! Ich dachte, dass der andere nicht veröffentlicht wurde, danke :) – Ric