تمرير صفيف أو قائمة إلىPathvariable - Spring/Java
-
09-12-2019 - |
سؤال
أقوم بإجراء عملية "get" بسيطة في JBoss/Spring.أريد من العميل أن يمرر لي مجموعة من الأعداد الصحيحة في عنوان url.كيف أقوم بإعداد ذلك على الخادم؟وإظهار هل يجب على العميل إرسال الرسالة؟
هذا هو ما لدي الآن.
@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable List<Integer> firstNameIds)
{
//What do I do??
return "Dummy";
}
على العميل أود أن أمرر شيئا من هذا القبيل
http://localhost:8080/public/test/[1,3,4,50]
عندما فعلت ذلك أحصل على خطأ:
java.lang.IllegalStateException:تعذر العثور على @PathVariable [firstNameIds] في @RequestMapping
المحلول
(اختبارها مع الربيع MVC 4.0.1)
نصائح أخرى
يجب عليك أن تفعل شيئا مثل هذا:
يتصل:
GET http://localhost:8080/public/test/1,2,3,4
وحدة التحكم الخاصة بك:
@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable List<Integer> firstNameIds) {
//Example: pring your params
for(Integer param : firstNameIds) {
System.out.println("id: " + param);
}
return "Dummy";
}
إذا كنت ترغب في استخدام الأقواس المربعة - [] giveacodicetagpre.
(تم اختباره مع الربيع MVC 4.1.1)
يمكن أن تفعل معرفات السلسلة EmpathVariable، ثم تحليل السلسلة.
لذلك مثل: giveacodicetagpre.
تمر في: giveacodicetagpre.