Kann mir jemand erklären, wie funktioniert die @RequestMapping und @RequestBody funktioniert?
Habe ich einige Zweifel bezüglich wie funktioniert die @RequestMapping und @RequestBody eigentlich woks.Ich habe einen code der lautet wie folgt:
@Controller
public class CoreController {
@Autowired
LoggerExtension log;
@Autowired
DoService doService;
@RequestMapping(value="/method.do")
public @ResponseBody String getActionResponse(HttpServletRequest request,HttpServletResponse response){
String action = request.getParameter("action");
String gender = request.getParameter("gender");
String language = request.getParameter("language");
if("getLanguage".equalsIgnoreCase(action)){
returnResponse = doService.getUserLanguage(msisdn);
}
}
return returnResponse;
}
Möchte ich wissen, wie funktioniert der obige code funktioniert? Bitte helfen Sie mir, klar, diese Konzepte...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Frühjahr-Dokumentation erklärt es sehr gut, für @RequestMapping
In Ihrem speziellen Fall
@RequestMapping(value="/method.do")
bedeutet, dass eine http-Anfrage (in einer Methode), um die URI/method.do
(z.B.http://myserver.com/app/method.do
) behandelt werden, die durch die annotierte MethodegetActionResponse(HttpServletRequest,HttpServletResponse)
Frühjahr und binden die Parameter automatisch.Als für
@ResponseBody
es sagt:In Ihrem konkreten Fall bedeutet dies, dass der zurückgegebene string der Methode annotiert werden geschrieben, um die Reaktion Ausgabe-Datenstrom oder die Schrifsteller wie wenn Sie etwas rufen wie diese:
Sehen ServletResponse#getWriter() oder ServletResponse#getOutputStream()
So einfach, was es tut, ist, dass, laut der 'url-Zuordnung', ausgedrückt in der xml-Datei Ihrer web.xml
Hängt " - Methode.tun", um es
So zum Beispiel:
Meine Bewerbung name ist `Hallo' und unten ist meine web.xml
Nun Ihre url für Ihren erwähnt werden
localhost/rest/method.do
@RequestMapping
ist ein Weg, zu sagen, der Umgang mit servlet, dass die Reaktion der strign ist die eigentliche Antwort. Idealerweise haben Sie einen Blick auf die der Ausgang weitergeleitet werden.Aber in diesem Fall Ihre Reaktion ist die Ansicht, daher die Anmerkung
@RequestMapping
Was Sie suchen, ist der Weg zur Erstellung eines WebService mit Spring.
Die @RequestMapping annotation ordnet den Pfad im Wert der Methode.
Also (Vorausgesetzt, Ihr server eingerichtet ist, auf localhost:8080 und Ihr Krieg ist mit dem Namen 'context'), wenn Sie rufen Sie die folgende url ein:
dem application server und der Frühling rufen die getActionResponse Methode in Ihrer Klasse.
normalerweise wird der Rückgabewert von getActionResponse wäre " wie eine url behandelt, so dass, wenn Sie den String 'text', würde der server umleiten zu /Krieg/text .
Die @ResponseBody annotation teilt Frühjahr ist, dass die zurückgegebene Zeichenfolge sollte eigentlich zurückgegeben werden, wie die Nachricht von der Antwort, also nachdem Sie den Aufruf, der server würde wieder ein 200 OK als Antwort mit einem message-body "- text".
edit: vergessen, über die grundlegende Zuordnung in der web.xml finden Sie Jatin Antwort .
anstatt also htt'p://localhost:8080/war/method.do es wäre htt'p://localhost:8080/war/rest/method.do