2016-10-22 2 views

Antwort

0
  1. Ant paths

  2. URL-Mapping-Bestellung. From Spring Docs:

Wenn eine URL mehrere Muster übereinstimmt, wird eine Art verwendet, um die meisten spezifische Übereinstimmung zu finden.

Ein Muster mit einer niedrigeren Anzahl von URI-Variablen und Platzhaltern wird genauer betrachtet. Zum Beispiel/Hotels/{hotel}/* hat 1 URI Variable und 1 Wild Card und spezifischere betrachtet als /Hotels/{Hotel}/** die als 1 URI Variable und 2 Wildcards

...

Es gibt auch einige zusätzliche besondere Regeln:

  • Die Standard-Mapping-Muster/** weniger spezifisch ist als jedes andere Muster. Zum Beispiel ist/api/{a}/{b}/{c} spezifischer.
  • Ein Präfixmuster wie/public/** ist weniger spezifisch als jedes andere Muster, das keine doppelten Platzhalter enthält. Zum Beispiel ist /public/path3/{a}/{b}/{c} spezifischer.
+0

Was ist dann der Unterschied bei der Verwendung von '/ welcome **' und '/ welcome *'? In beiden Fällen ist ein Pfad '/ welcome/ftp' oder'/welcome/ftp/index' unzulässig. – rozerro

+0

'**' bedeutet null oder mehr Zeichen, wobei es auch Pfadtrennzeichen '/' enthalten kann. Also wette ich, dass es für die erwähnten Pfade funktioniert, aber '/ welcome/**' wäre besser. – luboskrnac

2

Universell sprechen Sternchen (in Wildcard-Rolle) bedeuten

/welcome*: alles in diesem Ordner oder URL Abschnitt, die mit "/welcome" beginnt und endet vor dem nächsten "/" wie /welcomePage.

/welcome**: jede URL, die wie /welcome/section2/section3/ oder /welcomePage/index mit "/welcome" einschließlich Unterordnern und Unterabschnitte von URL-Muster beginnt.

/welcome/*: jede Datei, Ordner oder Abschnitt in der Begrüßung (vor dem nächsten "/") wie /welcome/index.

/welcome/**: alle Dateien, Ordner, Abschnitte, Unterordner oder Unterabschnitte in Willkommen.

Mit anderen Worten, ein Stern * endet vor dem nächsten "/", zwei Sternchen ** haben keine Grenzen.