webentwicklung-frage-antwort-db.com.de

Mehrere Spring @RequestMapping-Anmerkungen

Ist es möglich, mehrere @RequestMapping-Federanmerkungen in einer Methode zu verwenden? Mögen:

@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
 return("welcome");
}
226
wuntee

@RequestMapping Hat einen Werteparameter String[], Daher sollten Sie in der Lage sein, mehrere Werte wie diesen anzugeben:

@RequestMapping(value={"", "/", "welcome"})

403
Ed Brannin

Nach meinem Test (Spring 3.0.5) funktioniert @RequestMapping(value={"", "/"}) - nur "/", "" Nicht. Allerdings habe ich herausgefunden, dass dies funktioniert: @RequestMapping(value={"/", " * "}), das " * " Stimmt mit nichts überein, so dass es der Standard-Handler ist, falls keine anderen vorhanden sind.

22
Alan Zhong

Muss nicht. Die RequestMapping-Annotation unterstützt Platzhalter und Ant-Style-Pfade. Sieht auch so aus, als ob Sie nur eine Standardansicht möchten, damit Sie sie platzieren können

<mvc:view-controller path="/" view-name="welcome"/>

in deiner Konfigurationsdatei. Dadurch werden alle Anfragen an das Stammverzeichnis an die Begrüßungsansicht weitergeleitet.

12
Robby Pond

Es ist besser, die PathVariable-Annotation zu verwenden, wenn Sie immer noch die aufgerufene URI erhalten möchten.

@PostMapping("/pub/{action:a|b|c}")
public JSONObject handlexxx(@PathVariable String action, @RequestBody String reqStr){
...
}

oder analysieren Sie es vom Anfrageobjekt.

0
CQLI

Im Moment funktioniert mit Spring-Boot - {} nicht.

@RequestMapping

hat immer noch String [] als Wertparameter, die Deklaration sieht also so aus:

 @RequestMapping(value=["/","/index","/login","/home"], method = RequestMethod.GET)
0
Falcon

Der kürzeste Weg ist: @RequestMapping({"", "/", "welcome"})

Obwohl Sie auch tun können:

  • @RequestMapping(value={"", "/", "welcome"})
  • @RequestMapping(path={"", "/", "welcome"})
0
Marco