Mein Spring-Controller und clientseitiger Javascript-Code sind wie folgt und aus irgendeinem Grund kann das Javascript-Objekt den Spring-Controller im Objekt-Formular nicht erreichen. Mein Code-Controller ist wie folgt:Javascript-Objekt kann nicht in Java konvertiert werden Modell
@RequestMapping(value = "/addRating", method = RequestMethod.POST, headers = "Accept=application/json")
public EmployeeRating addRating(@ModelAttribute("employeeRating") EmployeeRating employeeRating) {
if(employeeRating.getId()==0)
{
employeeRatingService.addRating(employeeRating);
}
else
{
employeeRatingService.updateRating(employeeRating);
}
return employeeRating;
}
Mein Javascript-Code unten:
$.ajax({
url: 'https://myrestURL/addRating',
type: 'POST',
dataType: 'json',
data: {
'id':5,
'name': 'Name',
'rating': '1'
},
contentType: 'application/json; charset=utf-8',
success: function (result) {
// CallBack(result);
window.alert("Result: " + result);
},
error: function (error) {
window.alert("Error: " + error);
}
});
Das EmployeeRating Objekt in Java hat ID, Name und Bewertung Felder so gibt es keine Diskrepanz ist.
Aktualisieren der Modellklasse
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/*
* This is our model class and it corresponds to Country table in database
*/
@Entity
@Table(name="EMPLOYEERATING")
public class EmployeeRating {
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
int id;
@Column(name="name")
String name;
@Column(name="rating")
long rating;
public EmployeeRating() {
super();
}
public EmployeeRating(int i, String name,long rating) {
super();
this.id = i;
this.name = name;
this.rating=rating;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getRating() {
return rating;
}
public void setRating(long rating) {
this.rating = rating;
}
}
Zeigen Sie die Klasse 'EmployeeRating' an. – RealSkeptic
Beachten Sie, dass es im Frühjahr klarer ist, das Attribut "consumpts" für die Annotation zu verwenden, anstatt den Headerwert manuell anzugeben. – chrylis
hinzugefügt die EmployeeRating Klasse – p0tta