Ist es möglich, die Parameter, die in einem GET Webservice im Frühjahr verwendet werden, umzubenennen? Wie search.limitResults
im folgenden Beispiel:Wie benennt man Eigenschaften von compex @RequestParams in @RestController?
localhost:8080/firstname=test&search.limitResults=10
Sie erhalten die Idee. Kann das erreicht werden?
@RestController
public class MyServlet {
@RequestMapping(value = "/", method = RequestMethod.GET)
private String test(RestParams p) {
}
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class RestParams {
private String firstname;
private String lastname;
//is that possible to nest?
@XmlElement(name = "search")
private MyComplexSearch search;
public MyComplexSearch getSearch() {return search;}
public void setSearch(MyComplexSearch) {this.search = search;}
@XmlRootElement(name = "search")
@XmlAccessorType(XmlAccessType.FIELD)
public class MyComplexSearch {
private int limitResults;
//some more
}
}
Die Anfrage funktioniert nicht mit dem obigen Code. Stattdessen müsste man myComplexSearch
als Objektnamen verwenden.
localhost:8080/firstname=test&myComplexSearch.limitResults=10
Wie kann ich den Namen der Eingabeeigenschaft neu zu definieren, ohne selbst die Java-Klasse umbenennen zu müssen?
Wenn Sie ein 'bekommen/setSearch' es wird funktionieren. –
Ich habe sie tatsächlich so benannt (siehe oben), aber immer noch das gleiche Problem. – membersound
Wenn die Methode in der Tat ist, wie Sie gezeigt haben, sollte es einfach funktionieren. Wenn nicht, verwenden Sie nicht die hier dargestellte Methode oder haben eine Fehlkonfiguration ... –