Học kiểu đường dẫn kiến


104

Tôi có thể tìm tài nguyên để tìm hiểu các quy ước về kiểu đường dẫn Ant ở đâu? Tôi đã vào trang Ant, nhưng không thể tìm thấy bất kỳ thông tin nào về kiểu đường dẫn.


3
Ý bạn là gì về quy ước phong cách? Có phải ý bạn là đặt tên src cho src và cfg cho các thứ cấu hình?
Zak

Có thể câu trả lời này cũng sẽ rất hữu ích stackoverflow.com/q/40886239/355438
Lu55

Câu trả lời:


154

Các mẫu đường dẫn kiểu Ant phù hợp với :

Ánh xạ khớp với các URL bằng cách sử dụng các quy tắc sau:

  • ? khớp với một ký tự
  • * khớp với không hoặc nhiều ký tự
  • ** khớp với không hoặc nhiều 'thư mục' trong một đường dẫn
  • {spring:[a-z]+}khớp với regexp [a-z]+dưới dạng một biến đường dẫn có tên "spring"

Vài ví dụ:

  • com/t?st.jsp- khớp với com / test.jsp nhưng cũng com/tast.jsphoặccom/txst.jsp
  • com/*.jsp- phù hợp với tất cả .jspcác tệp trong comthư mục
  • com/**/test.jsp- khớp với tất cả test.jspcác tệp bên dưới comđường dẫn
  • org/springframework/**/*.jsp- khớp với tất cả .jspcác tệp bên dướiorg/springframework path
  • org/**/servlet/bla.jsp- diêm org/springframework/servlet/bla.jspmà còn org/springframework/testing/servlet/bla.jsporg/servlet/bla.jsp
  • com/{filename:\\w+}.jspsẽ khớp com/test.jspvà gán giá trị testcho filenamebiến

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


15
có cách nào để kết hợp nhiều mẫu trong một biểu thức kiến ​​không? như / com / *, /com/**/test.jsp trong cùng một biểu thức?
chrismarx

Mẫu này /WEB-INF/tiles-config/*-tiles-definition.xml để nhận tất cả các tệp kết thúc bằng-dệt-nét.xml không hoạt động với tôi nhưng đồng thời / WEB-INF / tile-config / * .xml hoạt động. Vậy * đối sánh với không hoặc nhiều ký tự có đúng không?
Khader MA

phần giải thích bên trong spring-framework-referencesẽ đặt nó vào ngữ cảnh: https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-requestmapping-uri-templates .
Wolfson

40

Tôi cho rằng ý bạn là cách sử dụng các mẫu đường dẫn

Nếu có vấn đề về việc sử dụng dấu gạch chéo hay dấu gạch chéo ngược, chúng sẽ được dịch sang dấu phân cách đường dẫn trên nền tảng được sử dụng trong thời gian thực thi.


1
+1. Ngoài ra, đây là cách điều hướng đến phần tài liệu này từ Ant Manual: Mục lục => "Khái niệm và loại" => [Danh sách các loại] phần menu bên trái => "Nhiệm vụ dựa trên thư mục" => [ Phần trang Patterns] .
Informatik01

7

Trình khớp mẫu kiểu ANT

Ký tự đại diện

Tiện ích sử dụng ba ký tự đại diện khác nhau.

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

1

Hầu hết câu trả lời được @user11153ủng hộ bằng cách sử dụng các bảng để có định dạng dễ đọc hơn.


Ánh xạ khớp với các URL bằng cách sử dụng các quy tắc sau:

+-----------------+---------------------------------------------------------+
| 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" |
+-----------------+---------------------------------------------------------+

Vài ví dụ:

+------------------------------+--------------------------------------------------------+
| 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  |
+------------------------------+--------------------------------------------------------+

0

Như @ user11153 đã đề cập, AntPathMatcher của Spring triển khai và ghi lại các khái niệm cơ bản về đối sánh mẫu đường dẫn kiểu Ant.

Ngoài ra, các API nio của Java 7 được bổ sung một số hỗ trợ tích hợp cho khớp mẫu cơ bản thông qua FileSystem.getPathMatcher

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.