Ameisenpfad lernen

104

Wo finde ich Ressourcen zum Erlernen von Konventionen im Ant-Pfad-Stil ? Ich habe die Ant-Site selbst besucht, konnte jedoch keine Informationen zu Pfadstilen finden.

MDK
quelle
3
Was meinst du mit Stilkonventionen? Meinen Sie damit, src für src und cfg für config stuff zu benennen?
Zak
Vielleicht
Lu55

Antworten:

154

Pfadmuster im Ameisenstil, die in übereinstimmen ::

Die Zuordnung stimmt mit URLs nach den folgenden Regeln überein:

  • ? entspricht einem Zeichen
  • * Entspricht null oder mehr Zeichen
  • ** Entspricht null oder mehr 'Verzeichnissen' in einem Pfad
  • {spring:[a-z]+}entspricht dem regulären Ausdruck [a-z]+als Pfadvariable mit dem Namen "spring"

Einige Beispiele:

  • com/t?st.jsp- entspricht com / test.jsp aber auch com/tast.jspodercom/txst.jsp
  • com/*.jsp- Entspricht allen .jspDateien im comVerzeichnis
  • com/**/test.jsp- stimmt mit allen test.jspDateien unter dem comPfad überein
  • org/springframework/**/*.jsp- Entspricht allen .jspDateien unter demorg/springframework path
  • org/**/servlet/bla.jsp- Streichhölzer org/springframework/servlet/bla.jspaber auch org/springframework/testing/servlet/bla.jspundorg/servlet/bla.jsp
  • com/{filename:\\w+}.jspwird übereinstimmen com/test.jspund den Wert testder filenameVariablen zuweisen

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/AntPathMatcher.html

user11153
quelle
15
Gibt es eine Möglichkeit, mehrere Muster innerhalb eines Ameisenausdrucks abzugleichen? wie / com / *, /com/**/test.jsp im gleichen Ausdruck?
Chrismarx
Dieses Muster /WEB-INF/tiles-config/*-tiles-definition.xml, um alle Dateien zu beenden, endet mit -tiles-definition.xml. Es funktioniert nicht für mich, aber gleichzeitig / WEB-INF / tiles-config / * .xml funktioniert. Stimmt * also mit null oder mehr Zeichen überein?
Khader MA
Die Erklärung in der spring-framework-referenceschön setzt es in einen Kontext: https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-requestmapping-uri-templates .
Wolfson
40

Ich nehme an, Sie meinen, wie man Pfadmuster verwendet

Wenn es darum geht, Schrägstriche oder Backslashes zu verwenden, werden diese in Pfadtrennzeichen auf der Plattform übersetzt, die während der Ausführungszeit verwendet werden.

Stapler
quelle
1
+1. Zusätzlich erfahren Sie hier, wie Sie aus dem Ant-Handbuch zu diesem Teil der Dokumentation navigieren: Inhaltsverzeichnis => "Konzepte und Typen" => [Liste der Typen] linker Menüabschnitt => "Verzeichnisbasierte Aufgaben" => [ Muster] Seitenabschnitt .
informatik01
7

ANT Style Pattern Matcher

Platzhalter

Das Dienstprogramm verwendet drei verschiedene Platzhalter.

+----------+-----------------------------------+
| Wildcard |            Description            |
+----------+-----------------------------------+
| *        | Matches zero or more characters.  |
| ?        | Matches exactly one character.    |
| **       | Matches zero or more directories. |
+----------+-----------------------------------+
Ein Jakhar
quelle
1

Am besten bewertete Antwort durch @user11153Verwendung von Tabellen für ein besser lesbares Format.


Die Zuordnung stimmt mit URLs nach den folgenden Regeln überein:

+-----------------+---------------------------------------------------------+
| Wildcard        |            Description                                  |
+-----------------+---------------------------------------------------------+
| ?               | Matches exactly one character.                          |
| *               | Matches zero or more characters.                        |
| **              | Matches zero or more 'directories' in a path            |
| {spring:[a-z]+} | Matches regExp [a-z]+ as a path variable named "spring" |
+-----------------+---------------------------------------------------------+

Einige Beispiele:

+------------------------------+--------------------------------------------------------+
| Example                      | Matches:                                               |
+------------------------------+--------------------------------------------------------+
| com/t?st.jsp                 | com/test.jsp but also com/tast.jsp or com/txst.jsp     |
| com/*.jsp                    | All .jsp files in the com directory                    |
| com/**/test.jsp              | All test.jsp files underneath the com path             |
| org/springframework/**/*.jsp | All .jsp files underneath the org/springframework path |
| org/**/servlet/bla.jsp       | org/springframework/servlet/bla.jsp                    |
|                       also:  | org/springframework/testing/servlet/bla.jsp            |
|                       also:  | org/servlet/bla.jsp                                    |
| com/{filename:\\w+}.jsp      | com/test.jsp & assign value test to filename variable  |
+------------------------------+--------------------------------------------------------+
KostasX
quelle
0

Wie unter @ user11153 erwähnt, implementiert und dokumentiert AntPathMatcher von Spring die Grundlagen des Pfadmusterabgleichs im Ant-Stil.

Darüber hinaus haben die nio-APIs von Java 7 einige integrierte Unterstützung für den grundlegenden Mustervergleich über FileSystem.getPathMatcher hinzugefügt

Romeara
quelle