2016-05-04 7 views
0

Ist es möglich, einen Feder-Mvc-Controller mit einem abschließenden Schlüsselwort einer URL zuzuordnen. z.B. lässt nehme an, ich habe folgende URLs:Spring MVC Map Controller mit abschließender URL-Zeichenfolge

  1. example.com/{cityName}
  2. example.com/{cityName}/{categoryName}
  3. example.com/{cityName}/ping
  4. example.com/{cityName}/{categoryName}/ping

I 3 Controller-Methoden haben wollen. Die erste URL sollte vom Controller "X" behandelt werden, die zweite URL sollte mit der Methode "Y" behandelt werden und die dritte, vierte URL sollte mit der einzigen Methode "Z" behandelt werden. Dies bedeutet, dass jede URL, die mit /ping endet, nur mit der Methode "Z" behandelt werden sollte. Egal was der führende Inhalt dieser URL ist.

Ist dies in Spring MVC machbar?

Antwort

1

Ist es möglich, eine Feder Mvc Controller durch Hinter Schlüsselwort eines URL abzubilden?

Ja, Sie können Ant-style Pfadmuster verwenden.

@RequestMapping(path = "**/ping") 
public String Z(HttpServletRequest request) { 
    return request.getRequestURI(); 
} 

Um diese Pfadvariablen zu extrahieren, beispielsweise: Folgesteuerung wird jede Anforderung zu URLs mit /ping mit beliebiger Anzahl von Ebenen enden hand cityName und categoryName sollten Sie die HttpServletRequest in den Methodenhandler injizieren.

Zusätzlich zu URI-Vorlagen unterstützt die @RequestMapping-Annotation auch Ant-style-Pfadmuster. Sie können mehr über Spring Documentation lesen.

+0

Danke, das ist, was ich gesucht habe – Abhi

0

Es sieht so aus, als würden Sie einen Slash als Teil der Controller-Zuordnung abgleichen. Dies wird in Spring MVC, and the maintainers have no plans to add it, nicht unterstützt. Wenn Sie als Sonderfall nur zwei Ebenen von "Verzeichnissen" haben, können Sie die Zuordnungen explizit wie oben angeben.

+0

danke für info. Ich bin nicht auf zwei Ebenen beschränkt. Es könnte 3 oder 4 sein, gibt es einen Workaround dafür – Abhi

+0

@Abhi Nicht ein einfacher, nein. Sie könnten dieses JIRA-Problem kommentieren und Ihre Notwendigkeit zum Ausdruck bringen, ein mehrstufiges Match zu machen. – chrylis

Verwandte Themen