हमारी वेब ऐप्लिकेशन में, वसंत MVC 3.2 का उपयोग कर हम विभिन्न वस्तुओं के कई पृष्ठवार सूचियों, और सूची में अन्य पृष्ठों के लिंक प्रदर्शित इस तरह निर्माण कर रहे हैं:नक्शा वसंत MVC में एक वस्तु के लिए अनुरोध पैरामीटर के सबसेट
/servlet/path?pageNum=4&resultsPerPage=10&sortOrder=ASC&sortBy=name
हालांकि URL में अतिरिक्त अनुरोध पैरामीटर भी हो सकते हैं (उदाहरण के लिए, खोज फ़िल्टर)।
तो हम इस तरह नियंत्रक तरीकों:
@RequestMapping(method = RequestMethod.GET, value="/ajax/admin/list")
public String ajaxlistGroups(Model model,
@RequestParam(value="pageNumber",required=false,defaultValue="0") Long pageNumber,
@RequestParam(value="resultsPerPage",required=false,defaultValue="10") int resultsPerPage,
@RequestParam(value="sortOrder",required=false,defaultValue="DESC") String sortOrder,
@RequestParam(value="orderBy",required=false,defaultValue="modificationDate")String orderBy) {
// create a PaginationCriteria object to hold this information for passing to Service layer
// do Database search
// return a JSP view name
}
तो हम इस अनाड़ी विधि हस्ताक्षर के साथ खत्म, बार-बार अनुप्रयोग में कई बार, और प्रत्येक विधि पृष्ठांकन जानकारी धारण करने के लिए एक PaginationCriteria वस्तु बनाने के लिए की जरूरत है , और इनपुट मान्य करें।
क्या इन अनुरोध पैराम मौजूद हैं, तो हमारे पेजिनेशनक्रिटिया ऑब्जेक्ट को स्वचालित रूप से बनाने का कोई तरीका है? उदाहरण के लिए, की जगह के साथ ऊपर:
@RequestMapping(method = RequestMethod.GET, value="/ajax/admin/list")
public String ajaxlistGroups(Model model, @SomeAnnotation? PaginationCriteria criteria,
) {
...
}
Ie, वहाँ वसंत में एक तरह से एक नियमित रूप से GET अनुरोध से requestParams का एक परिभाषित सबसेट लेते हैं, और उन्हें स्वचालित रूप से एक वस्तु में बदलने के लिए है, इसलिए इसे में उपयोग के लिए उपलब्ध है नियंत्रक हैंडलर विधि? मैंने पहले ही @ModelAttribute का उपयोग किया है, और यह यहां सही चीज़ नहीं लग रहा है।
धन्यवाद!
व्यापक उत्तर के लिए धन्यवाद! आपका पहला समाधान मेरे लक्ष्यों को पूरा करता है, ऑब्जेक्ट को अनुरोध-स्कोप्ड बीन के रूप में जोड़ता है। एओपी समाधान दिलचस्प लग रहा है लेकिन मुझे पिछले लपेटने वाले नियंत्रकों में वसंत-इकाई परीक्षणों में दखल देने वाले पहलुओं के साथ समस्याएं आई हैं ... मैंने 3.2 में कोशिश नहीं की है, शायद यह अभी तय है। – otter606