Est-il possible d'utiliser plusieurs annotations de ressort @RequestMapping dans une méthode? Comme:
@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
return("welcome");
}
@RequestMapping
a un paramètre String[]
value. Vous devriez donc pouvoir spécifier plusieurs valeurs de la manière suivante:
@RequestMapping(value={"", "/", "welcome"})
De mon test (printemps 3.0.5), @RequestMapping(value={"", "/"})
- seul "/"
fonctionne, ""
ne fonctionne pas. Cependant, j'ai découvert que cela fonctionne: @RequestMapping(value={"/", " * "})
, le " * "
ne correspond à rien, ce sera donc le gestionnaire par défaut si aucun autre.
Ce n'est pas nécessaire. Les annotations RequestMapping prennent en charge les caractères génériques et les chemins de style ant. On dirait aussi que vous voulez juste une vue par défaut, vous pouvez donc mettre
<mvc:view-controller path="/" view-name="welcome"/>
dans votre fichier de configuration. Cela transmettra toutes les demandes à la racine vers la vue d'accueil.
Il est préférable d'utiliser l'annotation PathVariable si vous voulez toujours obtenir l'URI appelé.
@PostMapping("/pub/{action:a|b|c}")
public JSONObject handlexxx(@PathVariable String action, @RequestBody String reqStr){
...
}
ou analysez-le à partir de l'objet request.
Pour l'instant, l'utilisation de Spring-Boot - {} ne fonctionnera pas.
@RequestMapping
a toujours String [] en tant que paramètre de valeur, donc la déclaration ressemble à ceci:
@RequestMapping(value=["/","/index","/login","/home"], method = RequestMethod.GET)
Le chemin le plus court est: @RequestMapping({"", "/", "welcome"})
Bien que vous puissiez aussi faire:
@RequestMapping(value={"", "/", "welcome"})
@RequestMapping(path={"", "/", "welcome"})