يمكن عادةً تقسيم المعالجة المقدمة إلى الخادم إلى مرحلتين. يستفسر المرحلة الأولى من حالة الخادم (الاستعلامات أو تحديث قاعدة البيانات) ، وتحدد المرحلة الثانية صفحة نتائج مناسبة وإعادتها إلى المستخدم (محتوى النتيجة التي سيتم مناقشتها هنا).
يوفر Struts2 الدعم لأنواع مختلفة من نتائج العائد ، وتشمل نتائج الشائعة JSP ، وعلامة الجاذبية ، والسرعة ، إلخ.
الأنواع المختلفة من نتائج العائد التي تدعمها Struts2 هي:
| اسم | يوضح |
|---|---|
| نتائج سلسلة | تستخدم للتعامل مع سلاسل العمل |
| نتائج المرسل | تستخدم في اللجوء إلى الصفحات ، وعادة ما يتعامل مع JSP |
| نتائج المؤشر | التعامل مع قوالب العلامات الجزرية |
| نتائج httpheader | تستخدم للتحكم في سلوك HTTP الخاص |
| إعادة توجيه نتيجة | إعادة التوجيه إلى عنوان URL |
| إعادة توجيه نتائج العمل | إعادة التوجيه إلى عمل |
| نتائج الدفق | إرسال كائن inputsream إلى المتصفح ، وعادة ما يستخدم لمعالجة تنزيلات الملفات |
| نتائج السرعة | معالجة قوالب السرعة |
| نتائج XLS | معالجة قوالب XML/XLST |
| نتيجة نص عادي | عرض محتوى الملف الأصلي ، مثل رمز مصدر الملف |
| S2Plugins: نتيجة البلاط | استخدم بالاشتراك مع البلاط |
بالإضافة إلى ذلك ، يتضمن نوع نتيجة الطرف الثالث أيضًا المكون الإضافي JasperReports ، والذي يستخدم خصيصًا لمعالجة إخراج التقارير لنوع JasperReport.
هناك بالفعل تعريفات لجميع أنواع النتائج في ملف struts-default.xml:
<treduction-types> <result-type name = "chain" class = "com.opensymphony.xwork2.ActionChainResult"/> <result-type name = "dispatcher" class = "org.apache.struts2.dispatcher.servletDispatherResult" default = "true"/> name = "freemarker" class = "org.apache.struts2 name = "redirect" class = "org.apache.structs2.dispatcher.ServleTredRectRepricult"/> <result-type name = "redirectaction" class = "org.apache.structs2 name = "Stream" class = "org.apache.structs2.dispatcher.streamresult"/> <result-type name = "velocity" class = "org.apache.struts2 name = "xslt" class = "org.apache.struts2 راجع WW-1707-> <name-type result = "redirect-action" class = "org.apache.structs2
من الكود أعلاه ، يمكننا أن نرى أنه عند عدم تحديد نوع النتيجة ، يتم استخدامه.
تحديد قيمة النتيجة ،
<result name = "success" type = "dispatcher"> <param name = "location">/thankyou.jsp </param> </reduct>
نظرًا لأن القيمة الافتراضية للنوع هي مرسل ، فليس هناك حاجة لتحديدها هنا. بالإضافة إلى ذلك ، فإن القيمة الافتراضية للاسم هي النجاح ، لذلك ليست هناك حاجة لتحديدها هنا.
يمكن اختصار الرمز أعلاه على النحو التالي:
<Repress> <param name = "location">/reightyou.jsp </param> </srode>
بالإضافة إلى ذلك ، يمكن أيضًا إلغاء تثبيت معلمات الموقع مباشرة من علامة النتيجة ، وبالتالي فإن أبسط طريقة لكتابة الرمز أعلاه هي:
<stred>/thankyou.jsp </drect>
يمكننا أيضًا تحديد نتائج مختلفة متعددة
<action name = "hello"> <result> /hello/result.jsp </redress> <result name = "error">/hello/error.jsp </redress> <result name = "input">/hello/input.jsp </redress> </socied>
معنى الكود أعلاه هو أن الإجراء الذي يحمل اسم Hello له ثلاث عوائد ، وكلهم أنواع مرسل (النوع الافتراضي). أسماء قيم الإرجاع الثلاثة هذه هي النجاح (القيمة الافتراضية) والخطأ والإدخال. مسارات الصفحة المقابلة هي /hello/result.jsp ، /hello/error.jsp ، و /hello/input.jsp.
في بعض الأحيان نحتاج إلى نتيجة عالمية محددة. في هذا الوقت ، يمكننا تحديد نتيجة عالمية داخل الحزمة ، على سبيل المثال:
<global-results> <result name = "error">/error.
نتائج إرجاع ديناميكي
في بعض الأحيان ، نعرف فقط أي نتيجة للعودة عندما ينفذ الإجراء ثنائية كاملة. في هذا الوقت ، يمكننا تحديد خاصية داخل الإجراء ، والتي يتم استخدامها لتخزين قيمة النتيجة بعد تنفيذ الإجراء BI الكامل ، على سبيل المثال:
سلسلة خاصة NextAction ؛ السلسلة العامة getNextaction () {return nextAction ؛} في ملف تكوين strutx.xml ، يمكننا استخدام $ {nextAction} للإشارة إلى الخصائص في الإجراء ، وإرجاع النتيجة ديناميكيًا من خلال المحتوى الذي يمثله $ {nextAction} ، على سبيل المثال:
<action name = "fragment"> <result name = "next" type = "redirect-action"> $ {nextAction} </result> </uction> عندما تُرجع طريقة التنفيذ في الإجراء أعلاه ، من الضروري أيضًا تحديد الإجراء الذي يقع بناءً على خصائص NextAction.
إذا كنت ترغب في إعادة توجيه إجراء آخر ، فيمكنك تعيين Type = سلسلة ولن تتم إضافة النتيجة إلى SHTML.
ما سبق هو كل التفسير التفصيلي لمعلمات نتيجة Struts2. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.