تدرس هذه الورقة بشكل أساسي التفسير التفصيلي لأزرار الراديو لإطار Struts2 والأمثلة ذات الصلة لتحويل أنواع التعداد ، على النحو التالي.
باستخدام علامات Struts2 ، لا شك في أنك تحتاج إلى تقديم مكتبة العلامات أولاً:
<٪@ taglib prefix = "s" uri = "/struts-tags" ٪>
افترض أن قيمة القائمة في مربع الراديو هي مجموعة خريطة:
<s: radio list = "#{'man': 'male' ، 'women': 'female'}" name = "gender" listkey = "key" listValue = "value" value = "'man'" theme = "simple"/> ملحوظة:
1. سمة الاسم هي أيضًا سمة الاسم المقابلة لرمز HTML.
2. تتوافق سمة القائمة مع سمة القيمة لرمز HTML.
3. سمة ListValue تتوافق مع سمة تسمية رمز HTML.
4. تشير سمة القيمة إلى: عندما تتطابق قيمة القيمة مع القيمة في المجموعة ، يتم تحديدها (إذا كانت قيمة القيمة عبارة عن سلسلة ، فأنت بحاجة إلى إضافة علامات اقتباس واحدة).
بعد التنفيذ ، سيتم تحليله في رمز HTML ، كما هو موضح في الشكل:
دعونا نشرح ذلك من خلال حالة:
عند تعديل المستخدم ، انقلب إلى واجهة التعديل وتردد جنس المستخدم في واجهة التعديل. هنا نستخدم التعداد لتمثيل الجنس.
واجهة المستخدم الأولية:
هيكل المشروع:
واجهة المستخدم:
<Body> <form Action = "ENUMACTION_TEST.ACTION" method = "post"> الرجاء تحديد الجنس: <s: radio list = "#{'man': 'male' ، 'women': 'female'}" name = "الجنس" listkey = "key" listvalue = "value" value = "man" theme = "simple"/رمز عمل الخلفية:
تعداد الطبقة العامة {/*تعريف الجنس ، الافتراضي هو الذكور*/جنسين الجنس الخاص = الجنس. ملاحظة: نظرًا لأننا نستخدم أنواع التعداد ، نحتاج إلى إجراء تحويل النوع (تم ذكر طريقة التحويل المحددة في المدونة السابقة).
تعداد رمز فئة تحويل النوع:
الفئة العامة enumtypeconverter يمتد defaulttypeconverter {suppressWarnings ("RawTypes") Override الكائن العام ConvertValue (خريطة <string ، كائن> سياق ، قيمة الكائن ، فئة totype) {/*تحويل من المقدمة إلى الدائرة ، من السلسلة إلى النوع*/إذا (totype == gender.clas) = (string []) value ؛ return gender.valueof (params [0]) ؛} آخر إذا (totype == string.class) {/*يمر من إجراء الخلفية إلى المقدمة ، أي أن تحويل نوع النوع الاجتماعي إلى نوع السلسلة*//*تحويل القيمة إلى الجنس*/الجنس الجنس = (الجنس) ؛حدد ملف الخصائص لتحويل النوع العالمي:
com.lixue.bean.gender = com.lixue.converter.enumtypeconverter
صفحة النتائج بعد القفز (واجهة تعديل المستخدم):
<Body> جنسك: <s: radio list = "#{'man': 'male' ، 'women': 'female'}" name = "gender" listkey = "key" listvalue = "value" value = "gender" theme = "simple"/> </body>ملاحظة: كيفية صدى الجنس المحدد حاليًا في واجهة التعديل؟ المفتاح هو النظر إلى قيمة القيمة. كتبت جنسًا في الكود أعلاه. في الواقع ، هذا الجنس هو خاصية محددة في الإجراء. عندما تحدثنا عن ognl في المقالة السابقة ، قلنا أنه سيتم حفظ الخصائص في الإجراء في مكدس القيمة. نأخذ الخصائص في مكدس القيمة ويمكن الحصول عليها مباشرة من خلال اسم السمة ، دون الحصول عليها من خلال شكل #NamesPace. بعد الحصول عليها ، قم بمطابقةها مع مجموعة الخريطة السابقة لتحديد ما إذا كان سيتم التحقق من ذلك.
1. قد يكون لدى بعض الأشخاص أسئلة ، لماذا يمكن كتابة مفتاح القائمة مباشرة على المفتاح ، ويتم كتابة ListValue مباشرة على القيمة.
الإجابة: عندما تقوم Struts2 بتوزيع مجموعة القائمة في علامة <S: Radio> ، فإنها تستخدم ITerator. تتمثل وظيفة التكرار في حفظ النتيجة (في كل مرة كائن إدخال) في الجزء العلوي من مكدس القيمة في كل مرة يتم فيها الحصول على القيمة. لذلك ، عند استخدام تعبير ognl ، يمكنك استخدام سمة الكائن مباشرة (أسماء السمات للإدخال هي مفتاح وقيمة) للحصول على القيمة. ليست هناك حاجة لاستخدام مساحة الاسم. يمكن للطلاب الذين لا يفهمون تعبير ognl قراءة المقالة السابقة.
2. سنجد أنه عند كتابة العلامات ، نكتب دائمًا موضوع السمة. تتمثل وظيفة هذه السمة في تجنب Struts2 لتوليد بعض التعليمات البرمجية غير الضرورية عند تحليل العلامات ، ولكن من الضروري كتابتها في كل مرة. أليست عملية احتيال؟ في الواقع ، يمكننا تكوين ملف ثابت في Struts.xml لتحقيق التأثير:
<!-نمط موضوع علامة Struts2-> <name name = "struts.ui.theme" value = "simple" />
إن تعلم أطر عمل الدعامات هذه يشبه إلى حد كبير رؤية السماء الزرقاء من خلال الغيوم والضباب. لدي فهم أوضح لأطر Java ، الربيع ، mybatis ، وما إلى ذلك ، وكل الأشياء متصلة. . .
ما سبق هو كل محتوى هذه المقالة حول التفسير التفصيلي لزر راديو Struts2 ومثال رمز التحويل لنوع التعداد. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!