क्या यह अभिव्यक्ति करने का कोई तरीका है कि मेरी स्प्रिंग वेब एमवीसी नियंत्रक विधि को यूआरआई पथ के हिस्से के रूप में आईडी में सौंपने के अनुरोध से मेल खाना चाहिए ...स्प्रिंग वेब एमवीसी: अनुरोध पैरामीटर और पथ चर के लिए उसी अनुरोध मैपिंग का उपयोग करें
@RequestMapping(method=RequestMethod.GET, value="campaigns/{id}")
public String getCampaignDetails(Model model, @PathVariable("id") Long id) {
... या ग्राहक में शैली में एक HTTP अनुरोध पैरामीटर के रूप में आईडी भेजता है ...
@RequestMapping(method=RequestMethod.GET, value="campaigns")
public String getCampaignDetails(Model model, @RequestParam("id") Long id) {
यह मुझे लगता है एक बहुत आम वास्तविक दुनिया यूआरएल स्कीम जहाँ मैं डुप्लिकेट कोड नहीं जोड़ना चाहते हैं, लेकिन मुझे अभी तक कोई जवाब नहीं मिला। कोई सलाह अत्यधिक स्वागत है।
संपादित करें: यह पता चला है कि वहाँ वर्तमान में लगता है कि कोई रास्ता नहीं इस लक्ष्य को हासिल करने के लिए (वसंत MVC < = 3.0 के साथ), Javi के जवाब के अंदर चर्चा को देखें।
दुर्भाग्य से यह काम नहीं कर रहा है क्योंकि पथ वैरिएबल हल नहीं किया जा सकता है:
path
के साथ, आप मानचित्रण इस सवाल से वांछित लक्ष्य को हासिल कर सकते हैं। मैंने विधि पैरामीटर (@PathVariable ("id") लांग id2 में जोड़कर एक संस्करण भी कोशिश की) लेकिन फिर आप पथ चर वैकल्पिक नहीं बना सकते हैं, इसलिए यह प्रस्तावित समाधान काम नहीं करता है। कोई और सिफारिशें? – ngeek@ngeek मुझे एहसास नहीं हुआ कि @PathVariable को शून्य पर सेट नहीं किया जा सका, धन्यवाद। मैं @PathVariable लिखना भी भूल गया था इसलिए मैंने इसे जोड़ने के लिए अपना जवाब संपादित कर लिया है और मुझे लगता है कि आप 2 तरीकों से बचने से नहीं बच सकते हैं :( – Javi
आपके प्रस्ताव पर वापस आने के लिए धन्यवाद। वास्तव में मैं पहले से ही प्रतिनिधि था डुप्लिकेट कोड से बचने के लिए एक ही आंतरिक विधि। मुझे अभी भी लगता है कि स्प्रिंग एमवीसी एनोटेशन को आंतरिक माध्यम से एक ही विधि में एकाधिक यूआरएल परिभाषाओं को मैप करने का मतलब प्रदान करना चाहिए, जैसे कि रेल या ग्रेल्स में राउटर पहले से ही अनुमति देते हैं। आपकी मदद के लिए धन्यवाद वैसे भी। – ngeek