لقد واجهت مؤخرًا مشكلة حيث أحتاج إلى تمرير مجموعة من الكائنات في المشروع. في الماضي ، واجهت فقط الحالات التي تم فيها تمرير كائن أو كائنات متعددة أو مجموعة من المصفوفات. من النادر معرفة ما إذا كانت مجموعة من الكائنات قد تم تمريرها. لذلك يبدو الأمر صعبًا بعض الشيء عندما تواجه هذه المشكلة. اعتقدت أنه سيكون من الممكن حلها بهذه الطريقة.
@requestmapping ("Save1") public void save1 (خطة الخطة ، قائمة <lantem> planitems ، httpservletresponse) {// todo more ... addMessage (response ، message_type_success ، null ، message_sucess) ؛}}لكن في وقت لاحق اكتشفت أنني كنت غبيًا وساذجًا. لا يمكن لهذه الطريقة ربط المعلمات على الإطلاق. يقول بعض الناس أن الربيع يجب أن يضحى جزءًا من أدائه مقارنة بالدعامات. لكن ليس لدي بحث في الربيع والدعامات ، فأنا أستخدمه كأداة. لذلك ، أنا حقا لا أعرف لماذا. الذهاب بعيدا ، والعودة إلى الموضوع. هناك حلول أخرى عبر الإنترنت. هذا هو كيف
قائمة personlist الفئة العامة {القائمة الخاصة <Person> الشخص ؛ القائمة العامة <Person> getPerson () {return person ؛ } public void setPerson (قائمة <Person> person) {this.person = person ؛ }} في وحدة التحكم:
@requestmapping (value = "xxx" ، method = requestMethod.post) اختبار الفراغ العام (الشخص الشخصي) {// transipate person}} يجب كتابة الصفحة مثل هذا:
<form id = "form" action = "test/test.do" method = "post"> <input type = "text" name = "person [0] .Username" value = "Jobs"/> <input type = "text" name = "person [0]. name = "person [1] .AGE" value = "21"/> <br/> <input type = "submit"> <Porm>
لكنني جربت هذه الطريقة ، لكنها لم تنجح. لا أعرف إذا كنت غبيًا جدًا أو لماذا.
بعد العديد من التحولات والمنعطفات ، تم العثور على حل آخر. تمرير سلسلة JSON من كائن القائمة في الخلفية. بعد أن تستقبل الخلفية المعلمات. ثم تحويل JSON إلى الكائن. يتم إعفاء رمز الواجهة الأمامية ، ورمز الخلفية كما يلي.
requestmapping ("Save") Save Public Void (خطة الخطة ، String Planitemjson ، httpservletresponse) {list <lantem> parsearray = json.parsearray (planitemjson ، planitem.class) ؛ // todo ما تريد addMessage (الرد ، message_type_success ، null ، message_success) ؛}ولكن هناك مشكلة صغيرة في هذا ، أي أنه سيتم إضافة سلسلة JSON تلقائيًا مع عروض أسعار مزدوجة في القسم الرئيسي في القسم السابق. عند فك التشفير في الخلفية ، يتم هروب الاقتباسات المزدوجة على أنها "" ؛ "لذلك تحتاج أيضًا إلى تحويل" "؛" ؛ لمضاعفة اقتباسات. وهذا هو ، الرمز النهائي هو
requestmapping ("Save") public void save (خطة الخطة ، سلسلة planitemjson ، httpservletresponse) {planitemjson = planitemjson.replaceall ("" ، "/" ") message_type_success ، null ، message_success) ؛}بعد الاختبار ، تعمل هذه الطريقة أيضًا على كائنات قائمة وكائنات قائمة.
ملاحظة: من أجل تحسين متانة البرنامج ، يمكنك التحقق من JSON بعد الهروب من كائنات JSON ، والتي تتجنب الأخطاء في JSON تتحول إلى كائنات Java.
أو استخدم طريقة أكثر عنفًا لأداء محاولة عمليات الصيد عندما تتحول JSON إلى القائمة.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.