1. تم شرح إحدى طرق تغيير سمات الإجراء في النموذج في استدعاء الطريقة الديناميكية DMI. هناك نوعان آخران. أحدهما هو تغيير سمة الطريقة في علامة الإجراء في ملف تكوين struts.xml لتحديد تنفيذ طرق مختلفة للتعامل مع منطق الأعمال المختلفة ؛ والآخر هو استخدام البطاقات البرية. لتغيير سمة الطريقة ، يجب تكوين إجراءات متعددة ، ويتم تعريف معظم هذه الإجراءات كما هي ، لذلك هذا التعريف لا لزوم له. لذلك ، يمكن أن يحل استخدام البطاقات البرية محل إجراءات متعددة معالجتها منطقيا في علامة إجراء واحدة.
2. العرض التوضيحي: ( يشبه استدعاء الطريقة الديناميكية السابقة لتغيير سمة إجراء النموذج ، وتم إجراء تعديل صغير على ملف تكوين Struts.xml.)
لا تزال المتطلبات لم تتغير. انقر فوق أزرار إرسال مختلفة لإرسال نفس النموذج وتسليم الخدمات المختلفة إلى نفس فئة معالجة الإجراءات للمعالجة.
⒈ عرض نموذج ، هناك زرين إرسالان في النموذج ، لكنهما يمثلان أعمالًا مختلفة. يقوم المستخدم بتسجيل الدخول عند النقر لتسجيل الدخول ؛ يقوم المستخدم بتسجيل الدخول عند النقر للتسجيل.
تسجيل الدخول ⒉user:
التسجيل ⒊user:
الرمز المحدد كما يلي:
⑴. تسجيل الدخول إلى صفحة التسجيل (index.jsp):
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <! "http://www.w3. type = "text/javaScript"> $ (function () {$ ("input: eq (3)"). انقر فوق (الدالة () {/*تعديل قيمة سمة الإجراء في النموذج لتقديم الطلب المسجل إلى فئة الإجراء*/$ ("#form"). attr ("الإجراء" ، "إنشاء") ؛}) ؛ method = "post" id = "form"> name: <input type = "text" name = "name"/> <br> <Br> كلمة المرور: <input type = "password" name = "password"/> <br> <br> <bort type = "president" value = "login" ⑵. رمز ملف تكوين STRTTS.XML
<؟ name = "*" method = "{1}"> <result name = "userLogin"> web-inf/jsp/userlogin.jsp </redress> <result name = "usercreate"> web-inf/usercreate.jsp </sropegen تحليل:
1. في ملف التكوين هذا ، يتم تكوين حرف WildCard لسمة الاسم في علامة الإجراء: "*" ، وقيمة سمة الطريقة بعد ذلك هي: {1}.
2. هذا يعني أنه عندما ينقر المستخدم على زر تسجيل الدخول على صفحة index.jsp ، فإن Action = "Login" طلب في النموذج: سيتم تمريره إلى الدعامات. نظرًا لأنه يتم تنفيذ تكوين البطاقة البرية في Struts.xml ، "*" يعتبر "تسجيل الدخول" ، أي ، name = "login". قيمة الطريقة اللاحقة هي: {1} تمثل أول "*" ، وهو method = "تسجيل الدخول". لذلك ستجد الدعامات طريقة تسجيل الدخول في فئة الإجراء. إذا انقر المستخدم على زر التسجيل ، فإن العملية هي نفسها النقر فوق زر تسجيل الدخول. يمكنك كتابة مثال صغير لتجربة ذلك.
⑶. فئة مدونة العمل:
Package Action ؛ import com.opensymphony.xwork2.ActionSupport ؛ يقوم إجراء الفئة العامة بتوسيع ActionSupport {اسم السلسلة الخاصة ؛ السلسلة العامة getName () {return name ؛} public void setName (اسم السلسلة) إنشاء () {system.out.println ("تسجيل المستخدم") ؛ إرجاع "usercreate" ؛}} بالطبع ، لا يعد استخدام أحرف Wildcard بهذه البساطة فحسب ، بل قد يشمل أيضًا: "*-*" ، "Book_*" ، وما إلى ذلك. يمكن استخدام أحرف Wildcard هذه في خصائص علامة الإجراء في ملف تكوين Struts.xml ، مثل سمات mthod وسمات الفئة ، أو في علامة النتيجة ، على النحو التالي:
<!-حدد علامة الإجراء العام-> <Action Name = "*"> <!-تحديد علامة النتائج باستخدام التعبيرات-> <result>/web-inf/jsp/{1} .jsp </sropeal> </action> في تعريف الإجراء أعلاه ، فإن اسم الإجراء هو *، بحيث يمكنه مطابقة أي إجراء. يتم التعامل مع جميع الطلبات من خلال هذا الإجراء. نظرًا لأن هذا الإجراء لا يحتوي على سمة فئة ، يتم استخدام فئة Actionupport للتعامل معه. نظرًا لعدم وجود سمة طريقة ، فإن الافتراضي هو طريقة التنفيذ وإرجاع سلسلة النجاح. علاوة على ذلك ، فإن سمة الاسم في علامة النتيجة هي النجاح افتراضيًا ، وبالتالي فإن الإجراء يعيد دائمًا مورد JSP المحدد في النتيجة. لذلك ، فإن معنى تعريف الإجراء أعلاه هو: إذا طلب المستخدم A.Action ، فسيقفز إلى A.JSP ؛ إذا تم طلب B.Action ، فسيقفز إلى B.JSP.
ما سبق هو استدعاء الطريقة الديناميكية في الدعامات التي قدمها لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!