Apakah ada cara untuk mendapatkan nilai path lengkap setelah requestMapping
@PathVariable
nilai diuraikan?
Yaitu:
/{id}/{restOfTheUrl}
harus mampu mengurai /1/dir1/dir2/file.html
ke id=1
danrestOfTheUrl=/dir1/dir2/file.html
Setiap ide akan dihargai.
spring
spring-mvc
request-mapping
Monyet Musim Semi
sumber
sumber
restOfTheUrl
akan menjadi seluruh jalur, bukan hanya bagian yang tersisa yang ditangkap oleh**
Baru saja menemukan masalah yang sesuai dengan masalah saya. Menggunakan konstanta HandlerMapping saya dapat menulis sebuah utilitas kecil untuk tujuan itu:
sumber
Ini sudah di sini cukup lama tetapi memposting ini. Mungkin bermanfaat bagi seseorang.
sumber
Membangun berdasarkan jawaban Fabien Kruba yang sudah sangat bagus , saya pikir akan lebih baik jika
**
bagian dari URL dapat diberikan sebagai parameter untuk metode pengontrol melalui anotasi, dengan cara yang mirip dengan@RequestParam
dan@PathVariable
, daripada selalu menggunakan metode utilitas yang secara eksplisit mengharuskanHttpServletRequest
. Jadi, inilah contoh bagaimana hal itu diterapkan. Semoga ada yang merasa bermanfaat.Buat anotasi, bersama dengan penyelesai argumen:
Daftarkan pemecah argumen metode:
Gunakan anotasi dalam metode pengendali pengendali Anda untuk memiliki akses mudah ke
**
bagian URL:sumber
Anda perlu menggunakan built-in
pathMatcher
:sumber
Saya telah menggunakan Tuckey URLRewriteFilter untuk menangani elemen path yang berisi karakter '/', karena saya belum berpikir Spring 3 MVC mendukungnya.
http://www.tuckey.org/
Anda memasukkan filter ini ke aplikasi Anda, dan memberikan file konfigurasi XML. Dalam file itu Anda memberikan aturan penulisan ulang, yang bisa Anda gunakan untuk menerjemahkan elemen path yang mengandung karakter '/' ke dalam parameter permintaan yang dapat ditangani oleh Spring MVC dengan benar menggunakan @RequestParam.
WEB-INF / web.xml:
WEB-INF / urlrewrite.xml:
Metode pengontrol:
sumber
Ya
restOfTheUrl
itu tidak mengembalikan hanya nilai yang diperlukan tetapi kita bisa mendapatkan nilai dengan menggunakanUriTemplate
pencocokan.Saya telah memecahkan masalah, jadi inilah solusi untuk masalah ini:
sumber
Inilah cara saya melakukannya. Anda dapat melihat bagaimana saya mengonversiURURI yang diminta ke jalur sistem file (tentang apa pertanyaan SO ini). Bonus: dan juga bagaimana menanggapi dengan file tersebut.
sumber
sumber
Saya memiliki masalah serupa dan saya menyelesaikannya dengan cara ini:
Perhatikan bahwa
req.getPathInfo()
akan mengembalikan jalur lengkap (dengan{siteCode}
dan{fileName}.{fileExtension}
) sehingga Anda harus memproses dengan mudah.sumber