En option variables de chemin d'accès dans Spring-MVC RequestMapping URITemplate
J'ai le mappage suivant:
@RequestMapping(value = "/{first}/**/{last}", method = RequestMethod.GET)
public String test(@PathVariable("first") String first, @PathVariable("last")
String last) {}
Qui pour la suite de l'Uri:
foo/a/b/c/d/e/f/g/h/bar
foo/a/bar
foo/bar
cartes foo premier et bar dernier et fonctionne très bien.
Ce que je voudrais, c'est quelque chose que les cartes de tout ce qui est entre foo et bar dans un chemin unique paramètre, ou null si il n'y a pas de juste milieu (comme dans la dernière URI exemple):
@RequestMapping(value = "/{first}/{middle:[some regex here?]}/{last}",
method = RequestMethod.GET)
public String test(@PathVariable("first") String first, @PathVariable("middle")
String middle, @PathVariable("last") String last) {}
Assez coincé sur les regex depuis que j'ai été en espérant que quelque chose de simple comme {moyen:.*}, qui seulement cartes /foo/bar, ou {moyen:(.*/)*}, qui semble à la carte pour rien.
Ne le AntPathStringMatcher marquer sur "/" avant l'application de modèles regex? (faire des motifs qui traversent un /impossible) ou est-il une solution?
Pour info c'est au Printemps 3.1M2
Cela semble similaire à @RequestMapping les contrôleurs et les Url dynamiques mais je ne vois pas de solution.
OriginalL'auteur laochan | 2011-10-20
Vous devez vous connecter pour publier un commentaire.
Dans mon projet, j'utilise intérieure variable dans le springframework:
Voir HandlerMapping.html#URI_TEMPLATE_VARIABLES_ATTRIBUTE
OriginalL'auteur imxylz
Ne peut pas être fait, autant que je sache. Comme vous l'avez indiqué, l'expression régulière est appliquée à l'élément de chemin après la séparation le chemin d'accès à chaque barre oblique, de sorte que l'expression régulière ne peut jamais correspondre à un '/'.
Vous pourriez inspecter manuellement l'url et analyser vous-même à partir de l'objet de la requête.
OriginalL'auteur peabody
Il pourrait être fait par la rédaction d'un chemin d'accès personnalisé matcher et la configuration de Printemps de l'utiliser. Par exemple, une telle solution est décrite ici: http://java.dzone.com/articles/spring-3-webmvc-optional-path
Le lien fournit un chemin d'accès personnalisé matcher et montre comment configurer le printemps de l'utiliser. Cela devrait résoudre votre besoin si vous n'avez pas l'esprit de l'écriture d'un composant personnalisé.
Aussi, c'est un doublon de Avec le Printemps 3.0, puis-je faire une option variable de chemin d'accès?
OriginalL'auteur dlaidlaw
essayez d'utiliser cette
tableau liste des url de méthode spécifique
Mais être prudent sur la création d'une liste d'url lorsque vous utilisez @PathVariable dans votre signature de la méthode qu'il ne peut pas être null.
espérons que cette aide
OriginalL'auteur Secondo