मैं एक GET पद्धति इतनी तरह लिखा के साथ एक नियंत्रक है बात आईडी, और चीज़/edit.jsp पर मेरा जेएसपी पेज दिखाता है।स्प्रिंग वेब MVC, @ModelAttribute और @RequestParam एक साथ
JSP है:
<html>
<body>
<h1 id="title" class="title">Edit Thing</h1>
<form:form id="thing" modelAttribute="thing">
<form:input path="subject" id="subject" tabindex="1" />
<form:textarea path="message" />
</form:form>
</body>
</html>
फिर भी, JSP विषय और संदेश के लिए खाली मान प्रदर्शित करता है। हां, उन गुणों पर गेटर्स/सेटर्स हैं।
मेरे पास एक बहुत ही समान नियंत्रक है जो ठीक काम करता है, सिवाय इसके कि वहां GET-mapped विधि के हस्ताक्षर में कोई @RequestParam नहीं है।
मैंने स्प्रिंग वेबएमवीसी दस्तावेज़ों में कहीं भी नहीं देखा है जो कहता है कि मैं ऐसा नहीं कर सकता - यह क्यों काम नहीं कर रहा है? अद्यतन मॉडल एट्रिब्यूट ऑब्जेक्ट जेएसपी फॉर्म में क्यों बाध्य नहीं है?
संपादित करें:
इस नियंत्रक, और प्राप्त कॉल के लिए यह एक ही पैटर्न में काम किया है कई कई विभिन्न स्थानों - चर @ModelAttribute साथ एनोटेट में विधि तो JSP पेज को प्रदर्शित करने के लिए उपलब्ध द्वारा भरा जाता है। क्यों, @RequestParam एनोटेशन जोड़कर, क्या यह रुकता है?
public String editThing(@RequestParam("thingId") String thingId,
@ModelAttribute("thing") ThingBean thing, BindingResult result) {
....
}
यदि उपरोक्त उपयोग यह काम नहीं करता:
@RequestMapping(value = "/Things.html", method = RequestMethod.GET)
public String getThings(@ModelAttribute ThingForm thingForm, BindingResult result) {
try {
// need to get list of Things
List<Thing> Things = <service call that gets list of Things>;
thingForm.setThings(Things);
logger.debug("Things are {}", Things);
}
catch (ResourceNotFoundException e) {
return "error";
}
logger.debug("Thing list loading - end");
// Go to jsp
return "thing/list";
}
आप हमें अपने अन्य controller.and क्या M.Deinum ने कहा है कि सही है दिखा सकते हैं (और अपने विधि में अपने कोड से पहचानने अपने Thingbean मॉडल विशेषता सुंदर बेकार मैं निम्नलिखित है कि फिर से लिखने होता है)। – beinghuman
counterexample जोड़ने के लिए संपादित प्रश्न। –
जैसा कि मैंने आपके द्वारा पोस्ट किए गए नियंत्रक में मेरे उत्तर में उल्लेख किया है कि आप ** एक चर (फिर से तर्क) को फिर से असाइन कर रहे हैं, आप उस विधि को पार नहीं कर रहे हैं जिसे आप विधि में पास करते हैं। नियंत्रक में आप कहते हैं कि यह काम करता है ** ** किसी ऑब्जेक्ट में कुछ जोड़ें जो मॉडल ऑब्जेक्ट के रूप में कार्य करता है। मूल रूप से यह काफी अलग है। –