یک مثال ساده از SpringMVC – Spring MVC

ما در ابتدا با ایجاد یک کنترل کننده به نام SimpleController شروع کنیم. این شی یک model را آماده و به view (برای مثال، یک JSP) ارسال می کند. کنترلر نوشته شده از AbstractController ارث می برد. AbstractController یکی از کنترلرهایی است که گردش کار را در زمان کار با رابط وب، درون خود تعریف کرده اند. AbstractController یکی از کنترلرهای ساده تر این مجموعه است. با در دریافت یک درخواست، SimpleController یک شی ModelAndView ایجاد کرده، view مورد نظر را (در این مثال welcome) شناسایی کرده، و Date را به model می افزاید. با بازگرداندن نمونه ModelAndView، کنترل کار خود را که شامل انتخاب یک view و تهیه یک model برای آن بر اساس اطلاعات درون درخواست است به اتمام می رساند.

در مرحله بعد نیاز است کنترلر تهیه شده به ApplicationContext متصل شود تا به همراه دیگر اشیاء استفاده شده با استفاده از تزریق وابستگی موجود در Spring پیکربندی شوند. برای اشیایی که مسئول کنترل کارهای وبی هستند، باید ApplicationContext یک نمونه از رابط WebApplicationContext باشد.

همانند بسیاری از چارچوب های MVC، چارچوب SpringMVC بر پایه یک servlet عمومی شناخته شده به نام Dispatcher Servlet و یا Front Controller ساخته شده است. DispatcherServlet نقطه ای است که یک کاربر با استفاده از مرورگر خود به آن متصل می شود. در حال حاضر، برای تعریف Servlet از فایل web.xml برنامه تحت وب خود استفاده کنید. همچنین یک فایل به نام [your-servlet]-servlet.xml در همان دایرکتوری web.xml (/WEB-INF/) بسازید. این فایل bean های مورد نیاز WebApplicationContext را درون خود تعریف می کند. از این رو SimpleController ما اینجا تعریف خواهد شد. WebApplicationContext شامل تمام مولفه های مربوط به وب سایت ما خواهد شد. پدر این کلاس یک application context است که سرویس ها و اشیای میانه مورد نیاز مانند data source را ایجاد می کند.

به عنوان مثال ما، محتوای فایل [your-servlet]-servlet.xml شامل اطلاعات زیر است:

کاربر از طریق DispatcherServlet، به برنامه های تحت وب متصل می شود. این ابزار کنترل را به کنترلر مناسبی انتقال می دهد. قطعه کد زیر از فایل web.xml برای معرفی یک servlet و نگاشت تمام درخواست بر روی DispatcherServlet است:

برای نمایش یک صفحه به کاربر، به یک JSP نیاز است. JSP زیر از کتابخانه استاندارد تگ جاوا برای نمایش تاریخی که SimpleController می افزاید استفاده کرده است:

به عنوان جایگزینی برای JSP، می توان بر اساس مدل بازگشتی از کنترلر، صفحه ای را با استفاده از Freemarker و یا Velocity پیاده سازی کرد، با iText یک PDF تولید کرد، و یا با کمک POI یک فایل اکسل به دست آورد. به عنوان مثال استفاده از قالب Velocity، نیاز به تغییر کلاس view نمایش نشان داده شده در مثال قبلی به VelocityView و تبدیل welcome.jsp به قالب Velocity با نام welcome.vm دارد. اما نیازی به تغییر در کنترل و یا مدل نیست، زیرا SpringMVC سه مفهوم model, view و controller را از یک دیگر جدا می کند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *