جاوا و تکنولوژی های آن

java programming language

در این وبلاگ به بررسی نکات موجود در جاوا و تکنولوژی های آن می پردازیم

طبقه بندی موضوعی


در فریم ورک های MVC ما نیاز داریم که اطلاعات model را در view ارائه و استفاده کنیم برای این منظور در Spring MVC چند کلاس برای این منظور وجود دارد که بسته به شرایط و نیاز میتوانیم از آنها استفاده کنیم در ادامه به شرح آنها و تفاوتشان میپردازیم


ابتدا مطمئن شوید که وابستگی های مورد نیاز را به pom.xml اضافه کرده ایم :

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.3.11.RELEASE</version>
</dependency>

برای استفاده از ModelAndView نیاز به کتابخانه زیر داریم :

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>4.3.11.RELEASE</version>
</dependency>

و برای استفاده از Thymeleaf نیاز به کتابخانه زیر :

<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf-spring3</artifactId>
    <version>3.0.8.RELEASE</version>
</dependency>




Model :

ساده ترین نوع ارائه دهنده attribute های model برای view است. با این کلاس میتوانیم یک دیتا یا مجموعه ای دیتا را در قالب یک ابجکت از Map قرار دهیم :

@GetMapping("/showViewPage")
public String passParametersWithModel(Model model) {
    Map<String, String> map = new HashMap<>();
    map.put("spring", "mvc");
    model.addAttribute("message", "Baeldung");
    model.mergeAttributes(map);
    return "viewPage";
}




ModelMap :

همانند کلاس Model برای ارسال دیتا به لایه view جهت رندر کردن استفاده میشود با این تفاوت که میتوانیم مقادیر Collection را هم ارسال کنیم  :

@GetMapping("/printViewPage")
public String passParametersWithModelMap(ModelMap map) {
    map.addAttribute("welcomeMessage", "welcome");
    map.addAttribute("message", "Baeldung");
    return "viewPage";
}




ModelAndView :

این کلاس همانطور که از اسمش پیداست  view را خودش میگیرد و دیتا ها را هم اضافه میکند و مقدار برگشتی بجای اینکه نام view باشد Object ای از ModelAndView است :

@GetMapping("/goToViewPage")
public ModelAndView passParametersWithModelAndView() {
    ModelAndView modelAndView = new ModelAndView("viewPage");
    modelAndView.addObject("message", "Baeldung");
    return modelAndView;
}



بررسی دیتای ارسالی در لایه view :

ما view ها را بصورت template طراحی میکنیم یک عناصر view بصورت خام وجود دارند ولی دیتایی برای نمایش ندارند حال زمانی که دیتا به لایه view رسید باید برای ارسال به سمت کلاینت رندر و آماده شود یکی از بهترین موتور های template که کار رندر کردن با امکانات خوبی ارائه میدهد thymeleaf است.

حالا با یک مثال میتوانیم ببینیم که دیتا چگونه در لایه view رندر خواهد شد :

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Title</title>
</head>
<body>
    <div>Web Application. Passed parameter : th:text="${message}"</div>
</body>
</html>


اگر به تگ های html قرار داده شده نگاه کنیم میتوانیم عبارت {message}$ مشاهده کنیم که به این syntax میگویند placeholder یعنی جایگاه اطلاعاتی را مشخص میکنیم که در آینده قرار است پر شود 

عبارت th:text هم سینتکس Thymeleaf برای رندر شدن است. در این بخش ما با استفاده از یکی از کلاس های Model دیتایی را با کلید message ارسال کرده ایم که توسط thymeleaf عینا فراخوانی میشود






نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی