ما هو structs2؟ تطورت على أساس دعامات 1 وهي إطار لوضع MVC. في الواقع ، فإن وظيفتها بسيطة للغاية ، وهي فصل العرض وطبقة المعالجة المنطقية. أنا لست موهوبًا ولدي مستوى منخفض من المعرفة. اعتدت على استخدام الربيع للقيام بالمشاريع. منذ أن كنت سأتخرج ، كنت بحاجة إلى تغيير المهن (دعنا نقول ذلك). تستخدم الشركة إطار الهياكل. لا توجد طريقة ، لذلك يمكنني التعلم من الصفر!
البرنامج المطلوب - Eclipse ، Tomcat 7.0 ، Struts -2.3.1.2 (قم بتنزيل الكود المصدر بنفسك) ، ما يلي هو مشروع صغير محدد لشرحه.
أولاً ، مبدأ العمل في Struts2: أولاً ، يقوم Tomcat بتحليل عنوان URL الذي أدخله المستخدم ، ويقوم بتوزيع اسم المشروع ، ثم يبحث البرنامج عن المشروع المباشر ، ثم ينتقل مباشرة إلى ملف التكوين web.xml ، ويجد ملف التكوين من خلال الإجراء ، Find ، ثم يقفز إلى واجهة الإجراء التي يتطلبها المستخدم.
ربما يكون من المثير للقلق أكثر أن نرى ما سبق ، لذلك دعونا نستخدم مشروعًا صغيرًا نموذجيًا لتوضيحه:
1. افتح Eclipse (لاحظ أن هذا الكسوف ليس كلاسيكيًا ولكنه إصدار IDE تم تنزيله ، وهو مناسب جدًا لتطوير الويب) ، وإنشاء مشروع ويب جديد ، واحرص على اتباع الطريقة التالية. وبهذه الطريقة ، يمكنك اختيار عنصر web.xml في الخطوة الأخيرة ، مما يلغي خطوة الإضافة اليدوية.
2. أضف حزمة JAR ، قم بفك ضغط حزمة رمز المصدر التي تم تنزيلها ، ثم أضف حزمة JAR التي استخدمتها في ملف LIB ، وأضف مجلد LIB ضمن WebContent-Web-Inf.
3. إضافة ملف struts.xml. أبسط ملف struts.xml موجود في تطبيق رمز مصدر Struts الذي تم تنزيله. يمكنك العثور على واحدة منه ، أو يمكنك كتابة واحدة بنفسك بالطريقة التالية (أبسط) ووضعها مباشرة في دليل الجذر لـ SRC:
انسخ رمز الرمز كما يلي: <؟
<! doctype الدعامات العامة
"-// Apache Software Foundation // DTD Struts Configuration 2.0 // en"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<name constant = "struts.devmode" value = "true" />
<package name = "Front" المساحة = "/" تمديد = "Struts-Default">
<اسم الإجراء = "الفهرس">
<result name = "success">/index.jsp </reduct>
</action>
</cream>
</struts>
دعنا نوضح المحتوى أعلاه: تم تكوين struts.devmode في السطر 6 لاعتماد وضع التطوير. يعني وضع التطوير أنه يمكن إظهار التعديل الديناميكي ديناميكيًا دون إعادة تشغيل الخادم. إنه خاطئ بشكل افتراضي ؛ الحزمة في السطر 7 تشبه حزمة Java ، وتستخدم للتصنيف ؛ مساحة الاسم مهمة للغاية وتستخدم لتقسيم عنوان URL. كما ذكر أعلاه ، فإن عنوان URL الذي سيتم فتحه هو: ...... / الفهرس ، حيث / يمثل Namepcae ، ويمثل الفهرس سمة الاسم للإجراء. الفصل في العمل هو فئة ، تستخدم لبعض المعالجة المنطقية لفئات Java العادية ؛ النتيجة هي واجهة JSP (عرض) تم نقلها إلى ، ويتم وضع واجهة JSP أعلاه في الدليل الجذري لمقبرة الويب.
4. اكتب Java class-action02 ، قم بإنشاء حزمة جديدة com.myservice.web ، ثم قم بإنشاء Action02 Java Class02. المحتوى بسيط للغاية.
نسخة الكود كما يلي: package com.myservice.web ؛
استيراد com.opensymphony.xwork2.actionsupport ؛
الطبقة العامة Action02 يمتد ActionSupport {
@تجاوز
السلسلة العامة تنفيذ () رمي الاستثناء {
// TODO METHOTION METTOD COBS
إرجاع "النجاح" ؛
}
}
إنه لتجاوز طريقة التنفيذ وإرجاع نجاح السلسلة مباشرة ، وهو ما يتوافق مع سمة النتيجة في الإجراء.
هناك طريقتان أخريان يمكنهما إكمال وظيفة الفصل ، ولكن لا يتم استخدامهما في كثير من الأحيان. أحدهما هو عدم ورث أي فئات وواجهات ، وكتابة طريقة تنفيذ مباشرة ، والتي تُرجع أيضًا سلسلة ؛ والآخر هو كتابة فصل لتنفيذ واجهة الإجراء ، ثم الكتابة فوق طريقة تنفيذ الإجراء. في الواقع ، يقوم Activeupport أيضًا بتنفيذ واجهة الإجراء ، ولكنه ينفذ أيضًا العديد من الطرق الأخرى ، والتي يمكن استخدامها بشكل مريح للغاية. لذلك ، في التنمية ، يتم اعتماد طريقة ورث فئة Actionupport.
5. اكتب ملف JSP وقم بإنشاء ملف JSP جديد في الدليل الجذري لـ WebContent. لاحظ أنه يجب عليه تعيين لغتها على UTF-8 ، مثل:
انسخ الرمز كما يلي: <٪@ page language = "java" contentType = "text/html ؛ charset = utf-8"
pageencoding = "utf-8" ٪>
<! doctype html public "-// w3c // dtd html 4.01 Transitional // en" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv = "content-type" content = "text/html ؛ charset = utf-8">
<title> myWeb02 </itlem>
</head>
<body>
<h1> غدًا وغدًا ، كم عدد الغد </h1>
</body>
</html>
من خلال العمل أعلاه ، يتم الانتهاء من أبسط كتابة ، وبعد ذلك يمكنك بدء تشغيل الخادم (tomcat7.0) وإدخال http: // localhost: 8080/xxx/index في المتصفح ، حيث يمثل xxx اسم المشروع.