Ist es möglich, mehrere @RequestMapping
Anmerkungen über eine Methode zu verwenden?
Mögen :
@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
return "welcome";
}
Ist es möglich, mehrere @RequestMapping
Anmerkungen über eine Methode zu verwenden?
Mögen :
@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
return "welcome";
}
Antworten:
@RequestMapping
hat einen String[]
Wertparameter, daher sollten Sie in der Lage sein, mehrere Werte wie diesen anzugeben:
@RequestMapping(value={"", "/", "welcome"})
Aus meinem Test (Frühjahr 3.0.5), @RequestMapping(value={"", "/"})
- "/"
funktioniert nur , ""
nicht. Allerdings habe ich herausgefunden, dass dies funktioniert : @RequestMapping(value={"/", " * "})
, das " * "
passt zu allem, so dass es der Standard-Handler ist, falls keine anderen.
Muss nicht. Die Annotation RequestMapping unterstützt Platzhalter und Pfade im Ameisenstil. Sieht auch so aus, als ob Sie nur eine Standardansicht möchten, damit Sie setzen können
<mvc:view-controller path="/" view-name="welcome"/>
in Ihrer Konfigurationsdatei. Dadurch werden alle Anfragen an das Stammverzeichnis an die Begrüßungsansicht weitergeleitet.
Im Moment funktioniert die Verwendung von Spring-Boot 2.0.4 - {} nicht.
@RequestMapping
hat immer noch String [] als Wertparameter, daher sieht die Deklaration folgendermaßen aus:
@RequestMapping(value=["/","/index","/login","/home"], method = RequestMethod.GET)
** Update - Funktioniert mit Spring-Boot 2.2 **
@RequestMapping(value={"/","/index","/login","/home"}, method = RequestMethod.GET)
Folgendes ist ebenfalls akzeptabel:
@GetMapping(path = { "/{pathVariable1}/{pathVariable1}/somePath",
"/fixedPath/{some-name}/{some-id}/fixed" },
produces = "application/json")
Gleiches gilt @RequestMapping
auch für
Es ist besser, die PathVariable-Annotation zu verwenden, wenn Sie immer noch den aufgerufenen Uri erhalten möchten.
@PostMapping("/pub/{action:a|b|c}")
public JSONObject handlexxx(@PathVariable String action, @RequestBody String reqStr){
...
}
oder analysieren Sie es vom Anforderungsobjekt.