راهنمای مطالعه
معماری MVC کوتاه شده عبارت Model View Controller و نوعی الگوی طراحی برای توسعه اپلیکیشنهای وب است. هر الگوی MVC از این ۳ بخش تشکیلشده است:
- Model – پایینترین سطح الگو که مسئولیت حفظ دادهها بر عهده آن است.
- View – این بخش مسئول به نمایش گذاشتن همه دادهها یا بخشی از آنها به کاربران است.
- Controller – کد نرمافزاری که تعامل و رابطه میان Model و View را کنترل میکند.
MVC به این امر معروف است که منطق اپلیکیشن را از لایه رابط کاربری جدا، و از جداسازی آنها پشتیبانی میکند. در این الگو Controller همه درخواستهای اپلیکیشن را دریافت و با Model برای آمادهسازی همه دادههایی که View نیاز دارد، همکاری میکند. سپس View از دادههایی که Controller مهیا ساخته است استفاده میکند تا پاسخ نهایی قابلارائه را به وجود آورد. در ادامه میتوانید مدل انتزاعی MVC را مشاهده کنید.
Model
Model مسئول مدیریت دادههای اپلیکیشن است. این سطح به درخواستهای View پاسخ میدهد و همچنین به دستورالعملهای Controller مبنی بر بهروزرسانی خود هم پاسخگو است.
View
View به معنی نمایش دادهها در قالبی مشخص است که پیشتر Controller درباره آن تصمیمگیری کرده تا دادهها سرانجام به نمایش درآیند. لایههای View سامانههای قالبسازی مبتنی بر متن مانند JSP، ASP و PHP هستند و خیلی راحت با تکنولوژی AJAX هم ادغام و سازگار میشوند.
Controller
Controller مسئول پاسخگویی به ورودی کاربر و اجرای تعامل روی مدل داده است. این لایه ورودی را دریافت و صحت آن را تأیید میکند؛ سپس عملیات لازم را روی آن به اجرا درمیآورد تا وضعیت نهایی مدل داده به تعادل برسد.
Struts2 نوعی فریمورک مبتنی بر MVC است که در ادامه به توضیح و معرفی آن میپردازیم.
Struts2 یکی از فریمورکهای محبوب و تکاملیافته اپلیکیشن و مبتنی بر الگوی طراحی MVC است. Struts2 تنها نسخه بازنویسی شده از Struts 1 نیست؛ بلکه بهنوعی نسل تازه طراحیشده است معماری Struts به شمار میرود.
مقاله مرتبط: فریمورکهای برتر php در سال ٢٠١٩
فریم ورک Webwork در ابتدا با فریمورک Struts بهعنوان بخش پایهای آغاز شد و هدفش هم ارائه فریم ورکی بهبودیافته و پیشرفته مبتنی بر Struts به توسعهدهندگان بود تا تجربه توسعه وب را برای ایشان تسهیل کند.
پس از مدتی فریم ورک Webwork و جامعه Struts به یکدیگر دست همکاری دادند و فریم ورک محبوب Struts 2 را ایجاد کرند.
قابلیتهای فریم ورک Struts 2:
در ادامه میخواهیم به برخی از مهمترین ویژگیهای Struts2 اشاره و شما را با آن آشنا کنیم:
- POJO – Action Form در فریم ورک Struts نقش مهمی داشت اما این موضوع دیگر در فریم ورک Struts2 صدق نمیکند. در این فریم ورک تازه میتوانید برای دریافت ورودی از هر نوع فرم POJO دلخواه خود استفاده کنید. همچنین قادر خواهید بود از هر POJO دلخواه بهعنوان Action class بهره ببرید.
- پشتیبانی از Tag – Struts2 تگها را بهبود بخشیده است با پشتیبانی از تگهای تازه توسعهدهندگان را قادر میسازد تا کدهای کمتری بنویسند.
- پشتیبانی از AJAX – Struts2 بهخوبی پیشرفت و ورود تکنولوژیهای ۰ را درک کرده و با پشتیبانی از AJAX سازگار شده است. این فریم ورک تگهای AJAX ایجاد میکند که بسیار شبیه به تگهای استاندارد Struts2 هستند.
- یکپارچگی و سازگاری آسان – حالا Struts2 بهآسانی با سایر فریم ورکها مانند Spring، Tiles و SiteMesh سازگار و یکپارچه میشود.
- پشتیبانی از قالبهای پیشفرض – پشتیبانی از ایجاد نمایش به کمک قالبهای پیشفرض.
- پشتیبانی از پلاگین – با استفاده از پلاگینها میتوان رفتار اصلی Struts2 را تقویت و تکمیل کرد. پلاگینهای متعددی برای فریم ورک Struts 2 وجود دارد.
- نمایهسازی – فریم ورک Struts2 امکان نمایهسازی یکپارچه را بهمنظور رفع عیوب و مشکلات اپلیکیشن فراهم میسازد. علاوه بر این در Struts امکان عیبیابی و رفع مشکلات به کمک ابزارهای داخلی هم وجود دارد.
- سهولت در اصلاح تگها – افزودن به تگها در فریم ورک Struts2 به کمک قالبهای Freemarker امکانپذیر است و برای انجام آنهم نیازی نیست که JSP یا جاوا بلد باشید. برای اصلاح و بسط دادن این تگها کافی است با HTML، XML و CSS آشنا باشید.
- تشویق نکردن به پیکربندی – فریم ورک Struts2 به کمک استفاده از ارزشهای پیشفرض برای تنظیمات متعدد الزام به اجرای پیکربندیهای متعدد را کاهش میدهد. در این صورت لازم نیست چیزی را پیکربندی کنید؛ مگر آنکه از تنظیمات پیشفرض Struts2 فاصله گرفته باشد.
- تکنولوژیهای نمایش (View) – فریم ورک Struts2 بهخوبی از امکانات متعدد نمایش مانند JSP، Freemarker، Velocity و XSLT پشتیبانی میکند.
به ۱۰ مورد از بهترین مزایای فریم ورک Struts2 اشاره کردیم و حالا نوبت آن رسیده است تا معایبش را هم برشماریم.
معایب Struts 2
Struts2 ویژگیها و قابلیتهای چشمگیری دارد، اما همچنان نمیتوانیم محدودیتهای این نسخه را نادیده بگیریم. در ادامه به برخی از مهمترین کاستیهای این فریم ورک اشاره میکنیم.
- منحنی یادگیری بزرگ – برای استفاده از MVC با فریم ورک Struts شما باید پیش از آن با JSP، Servlet API و یک فریم ورک بزرگ و پیچیده آشنا باشید.
- مستندسازی ضعیف – فریم ورک Struts در مقایسه با Servlet و JSP API منابع آنلاین کمتری دارد و ازنظر بسیاری از کاربران تازهوارد مستندسازی آنلاین آپاچی بسیار گمراهکننده و ضعیف است.
- شفافیت پایین – پشتصحنه Struts بسیار شلوغتر از پشتصحنه اپلیکیشنهای وب مبتنی بر جاوا است و همین موضوع باعث میشود درک این فریم ورک دشوارتر باشد.
در آخر باید بگوییم که یک فریمورک خوب باید رفتار عامی را فراهم آورد تا انواع مختلف اپلیکیشنها بتوانند از آن بهره ببرند.
Struts2 یکی از بهترین فریمورکهای وب است و این روزها درزمینهٔ توسعه اپلیکیشنهای اینترنتی غنی (RIA) مورداستفاده بسیاری از توسعهدهندگان قرار میگیرد.