يتم استخدام خانات الاختيار كثيرًا في تطوير الويب. الآن نستخدم ملصق خانة الاختيار من Struts2 لتنفيذ بعض المشكلات التي نواجهها غالبًا في التطوير.
دعونا نلقي نظرة على خصائص هذه العلامة:
ملاحظة: مفتاح القائمة يعادل سمة القيمة في HTML. هذه القيمة هي في الحقيقة ما نريد استخدامه في الخلفية عند التفاعل مع الخلفية ؛ ListValue هو مجرد عرض للمحتوى.
قام المستخدم باختيار الدورة التدريبية المفضلة لديه ويحتاج الآن إلى تعديل الدورة التي حددتها ، والقفز إلى واجهة التعديل ، ثم صدى الدورة التدريبية المحددة.
قام المستخدم باختيار واجهة الدورة التدريبية:
انقر فوق الزر وأدخل واجهة تعديل الدورة التدريبية:
ملاحظة: في واجهة التعديل ، يجب أن تكرر التحديد الأولي للمستخدم.
قام المستخدم باختيار واجهة الدورة التدريبية:
<Body> الدورة التدريبية الخاصة بك: <form action = "checkboxactaction_test.action" method = "post"> <s: checkboxlist list = "{'java' ، '.رمز العمل:
يمتد مربعات الاختيار من الفئة العامة على الإجراءات UPPORT {private static static frend ong serialversionuid = 1l ؛/*الدورة التدريبية التي تم تحديدها من قبل المستخدم (السلسلة ، تحتاج إلى إزالة المساحات)*/دورات السلسلة الخاصة ؛ السلسلة العامة getCourses () تمت إزالته بهذه الطريقة ، لا يعمل trim ()]*/string courstrs = this.courses.replaceall ("" ، "") ؛/*تحديد مجموعة لتخزين الدورات التدريبية المحددة من قبل المستخدم في المجموعة*/list <string> userCourses = new ArrayList <) ؛/**/for (String str: courstrs.split ("،))) {usercourses.add (str) ؛}/*حفظ الدورات التدريبية المحددة من قبل المستخدم في سياق سياق ognl*/actionContext.getContext (). put (" usercourses "، usercourses) ؛ ArrayList <string> () ؛ cous.add ("java") ؛ cous.add (".تعديل الواجهة:
<Body> الدورة التدريبية التي حددتها هي: <s: checkboxlist name = "compses" list = "#cous" value = "#usercourses" /> </body>
ملاحظة: في واجهة التعديل ، من السهل جدًا تحقيق صدى النتيجة. بالإضافة إلى ذلك ، نحتاج فقط إلى اسم السمة # للحصول على قيم القائمة والقيمة ، لأننا وضعنا بالفعل الكائن في ActionContext ، أي سياق ognlContext في الإجراء.
هنا نستخدم حالة مماثلة للاقتراب من بيئة تطوير المحاكاة:
يختار المستخدم معبوده (كائن Javabean) ، ثم يقفز إلى واجهة التعديل لتعديله ، ويصدى البيانات في واجهة التعديل.
اختار المستخدم واجهة المعبود:
تعديل الواجهة (لتنفيذ صدى البيانات)
اختار المستخدم واجهة المعبود:
<Body> المعبود الخاص بك: <form action = "checkBoxListAction.action" method = "post"> <s: checkboxlist list = "#{1: 'deng xiaoping' ، 2: 'xi jinping' ، 3: 'hu jintao' ، 4: 'li keqiang'} لتعديل "/> </form> </body> ملاحظة: القائمة عبارة عن مجموعة من الخرائط التي أنشأتها OGONL. مفتاح القائمة يعادل قيمة القيمة الحقيقية للنموذج المقدم. نمرر مفتاح الخريطة إلى خلفية المعالجة.
جافابان كائن:
مستخدم الفئة العامة {/* معرف المستخدم*/private integer uid ؛/* username*/private string uname ؛/* no-argument constructor*/public user () {}/* constructor*/user public (integer uid ، string uname) {this.uid = uid ؛ this.uname = uname ؛ uid) {this.uid = uid ؛} السلسلة العامة getUname () {return uname ؛} public void setUname (string uname) {this.uname = uname ؛}}رمز العمل:
يمتد CheckBoxListAction من الفئة العامة الإجراءات actionupport {private static final long serialversionuid = 1l ؛/* Idol Collection*/list private <sustr>/* ind in string*/private string ids ؛ public list <Seter> getUsers () {return users ؛} setusers public void (list <ser> user) {this.users =} {this.ids = ids ؛} السلسلة العامة تنفيذ () {/*محاكاة للحصول على جميع الأصنام من قاعدة البيانات ، ونقلها إلى مكتب الاستقبال لعرضها ، ثم قارنها باختيار المستخدم*/المستخدمين = جديد arraylist <Sether> () "hu jintao")) ؛ المستخدمين. [يجب استخدامها بهذه الطريقة ، لا تعمل طريقة trim ()]*/ids = ids.replaceall ("" ، "") ؛/*التكرار*/for (string str: ids.split ("،")) {userids.add (integer.valueof (str)) ؛ userids) ؛ إرجاع هذا. success ؛}}تعديل الواجهة (صدى البيانات):
<Body> ID IS: <s: checkboxlist name = "users" list = "#users" listkey = "uid" listValue = "uname" value = "#userids"/> </body>
ملاحظة: مفتاح القائمة وقائمة القائمة هما خصائصان لجافابان. سيتم وضعها في مكدس القيمة عند تكرار CheckBoxList ، لذلك ليست هناك حاجة للحصول عليها في شكل #NamesPace. يمكنك الحصول عليه مباشرة باستخدام اسم السمة. قيمة القيمة هي جمع UIDs في Javabean ، والتي سيتم مطابقتها تلقائيًا ، ثم حدد القيمة المقابلة.
مُرفَق:
1. إذا كان مشروعك لا يستخدم Freemaker ، ولكن الخطأ الموضح في الشكل أدناه يظهر!
لذا ، تهانينا ، فذلك لأن علامة Struts2 الخاصة بك لا تحتوي على سمة اسم! ! ! ! (درس من الدموع ، لقد تعرضت للغش لمدة ساعتين!)
ما ورد أعلاه هو كل محتوى هذه المقالة حول تعلم رمز مثيل مربع الاختيار Struts2 لإطار Java ، وآمل أن يكون مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!