मुझे इस तरह के एक साधारण सवाल पूछने के लिए क्षमा करें क्योंकि मैं स्प्रिंग एमवीसी 3.0 के लिए नया हूं। मैं वसंत स्रोत वेबसाइट से कुछ बार दस्तावेज पढ़ रहा हूं।स्प्रिंग एमवीसी 3.0: क्या @PathVariable के लिए पसंदीदा प्रकार स्ट्रिंग का उपयोग किया जा रहा है?
@RequestMapping("/pets/{petId}")
public void findPet(@PathVariable String petId, Model model) {
// implementation omitted
}
मैं इस उदाहरण के आधार पर यूआरआई टेम्पलेट का उपयोग करना चाहते हैं, यह हमेशा स्ट्रिंग होने की @PathVariable प्रकार स्थापित करने के लिए बेहतर है -: कोड स्निपेट है कि मैं नीचे मेरे सवाल के लिए का उल्लेख करेंगे भले ही मैं इसे अन्य प्रकार की उम्मीद कर रहा हूं, जैसे कि एक int? प्रलेखन का कहना है कि @PathVariable एनोटेशन किसी भी साधारण प्रकार का हो सकता है, लेकिन यदि वसंत अमान्य petId को int में परिवर्तित करने में असमर्थ है (उदाहरण के लिए, उपयोगकर्ता संख्याओं के बजाय कुछ वर्णों में प्रवेश करता है), तो यह एक टाइपमिस्मैच अपवाद फेंक देगा।
तो, वैधता कब खेलती है? क्या मैं सभी @PathVariable प्रकारों को स्ट्रिंग होने के लिए छोड़ता हूं और स्ट्रिंग मानों पर सत्यापन करने के लिए सत्यापनकर्ता है, और यदि कोई सत्यापन त्रुटि नहीं है, तो स्ट्रिंग को वांछित प्रकार में स्पष्ट रूप से रूपांतरित करें?
धन्यवाद।
यह दृष्टिकोण काम करता है देखें उपयोगकर्ता यूआरएल खुद को निर्माण करती है। हालांकि, मुझे यकीन नहीं है कि यह कैसे काम करेगा यदि पेटीड के लिए मूल्य किसी फॉर्म से सबमिट किए गए खुले टेक्स्ट फ़ील्ड से आता है। – limc
तो यह '@ PathVariable' नहीं है, बल्कि' @ RequestParam' है। और प्रमाणीकरण क्लाइंट-साइड किया जाना चाहिए, सर्वर-साइड – Bozho
के अतिरिक्त आपके अंतर्दृष्टिपूर्ण स्पष्टीकरण के लिए धन्यवाद, मुझे लगता है कि मैं @ पाथवार्येबल और @requestparam के बीच उलझन में आया हूं। – limc