JSP এবং Thymeleaf এর সাথে View Resolver কনফিগারেশন

View Resolver - স্প্রিং এমভিসি (Spring MVC) - Java Technologies

278

View Resolver হল Spring MVC-র একটি গুরুত্বপূর্ণ উপাদান যা কন্ট্রোলার থেকে প্রাপ্ত মডেল ডেটা ভিউ (JSP, Thymeleaf, ইত্যাদি) এর মাধ্যমে রেন্ডার করতে সাহায্য করে। এটি একটি URL বা ভিউ নামের সাথে সম্পর্কিত ভিউ টেমপ্লেট নির্বাচন করতে ব্যবহৃত হয়। View Resolver কনফিগারেশন করার মাধ্যমে, আপনি Spring MVC অ্যাপ্লিকেশনে JSP বা Thymeleaf এর মতো ভিউ টেমপ্লেট সিস্টেম ব্যবহার করতে পারেন।

1. JSP (JavaServer Pages) এর সাথে View Resolver কনফিগারেশন

JSP হল Java-based টেমপ্লেট ইঞ্জিন যা ডাইনামিক HTML পেজ তৈরি করতে ব্যবহৃত হয়। Spring MVC-তে JSP ব্যবহার করতে, আপনাকে InternalResourceViewResolver কনফিগার করতে হবে।

pom.xml - JSP-এর জন্য ডিপেনডেন্সি

Spring Boot-এ JSP ব্যবহারের জন্য এই ডিপেনডেন্সি প্রয়োজন:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

application.properties - JSP কনফিগারেশন

Spring Boot অ্যাপ্লিকেশনে application.properties বা application.yml ফাইলে JSP কনফিগারেশন করতে হবে:

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

এই কনফিগারেশনটি Spring MVC-কে বলে যে JSP ফাইলগুলো /WEB-INF/jsp/ ডিরেক্টরিতে থাকবে এবং .jsp এক্সটেনশন থাকবে।

WebConfig.java - JSP এর জন্য View Resolver কনফিগারেশন

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@EnableWebMvc
public class WebConfig {

    @Bean
    public InternalResourceViewResolver viewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/jsp/");  // View এর প্রিফিক্স ডিরেক্টরি
        resolver.setSuffix(".jsp");          // View এর সাফিক্স, এখানে .jsp ফাইল
        return resolver;
    }
}

এখানে, InternalResourceViewResolver কনফিগারেশন Spring MVC-কে বলে দেয় কিভাবে JSP পেজগুলি খুঁজে পাওয়া যাবে।

Controller Example for JSP

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {

    @GetMapping("/home")
    public String home(Model model) {
        model.addAttribute("message", "Welcome to Spring MVC with JSP!");
        return "home"; // This maps to /WEB-INF/jsp/home.jsp
    }
}

home.jsp (JSP View)

<!DOCTYPE html>
<html>
<head>
    <title>Spring MVC JSP Example</title>
</head>
<body>
    <h2>${message}</h2>
</body>
</html>

2. Thymeleaf এর সাথে View Resolver কনফিগারেশন

Thymeleaf একটি আধুনিক এবং শক্তিশালী টেমপ্লেট ইঞ্জিন যা Spring Framework-এর সাথে খুব ভালো কাজ করে। এটি HTML, XML, JavaScript, এবং Text ফাইলের জন্য ব্যবহার করা যেতে পারে। Spring Boot প্রকল্পে Thymeleaf সাধারণত ডিফল্টভাবে কনফিগার করা থাকে, তবে আপনি View Resolver কনফিগার করতে পারেন যদি আপনি কাস্টম কনফিগারেশন করতে চান।

pom.xml - Thymeleaf ডিপেনডেন্সি

Thymeleaf ডিপেনডেন্সি Spring Boot অ্যাপ্লিকেশনে সাধারণত অন্তর্ভুক্ত থাকে, কিন্তু যদি না থাকে তবে এই ডিপেনডেন্সিটি যোগ করুন:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

application.properties - Thymeleaf কনফিগারেশন

Spring Boot দ্বারা Thymeleaf কনফিগারেশন সাধারণত স্বয়ংক্রিয়ভাবে পরিচালিত হয়, তবে আপনি application.properties ফাইলে ভিউ পাথ কনফিগার করতে পারেন:

spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML
spring.thymeleaf.encoding=UTF-8

এখানে, prefix নির্দেশ করে যে আপনার Thymeleaf টেমপ্লেটগুলি src/main/resources/templates/ ডিরেক্টরিতে থাকবে এবং .html এক্সটেনশন হবে।

WebConfig.java - Thymeleaf কনফিগারেশন (Optional)

Spring Boot সাধারণত Thymeleaf কে ডিফল্ট হিসেবে কনফিগার করে, তবে আপনি যদি কাস্টম কনফিগারেশন চান, তাহলে নিচের মতো কনফিগারেশন করতে পারেন:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.view.thymeleaf.ThymeleafViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@Configuration
@EnableWebMvc
public class WebConfig {

    @Bean
    public ThymeleafViewResolver thymeleafViewResolver() {
        ThymeleafViewResolver resolver = new ThymeleafViewResolver();
        resolver.setPrefix("/templates/");  // View এর প্রিফিক্স ডিরেক্টরি
        resolver.setSuffix(".html");        // View এর সাফিক্স, এখানে .html ফাইল
        return resolver;
    }
}

Controller Example for Thymeleaf

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {

    @GetMapping("/home")
    public String home(Model model) {
        model.addAttribute("message", "Welcome to Spring MVC with Thymeleaf!");
        return "home"; // This maps to /templates/home.html
    }
}

home.html (Thymeleaf View)

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Spring MVC Thymeleaf Example</title>
</head>
<body>
    <h2 th:text="${message}"></h2>
</body>
</html>

3. Spring Boot-এ Default View Resolver

Spring Boot দ্বারা Thymeleaf এর জন্য স্বয়ংক্রিয়ভাবে View Resolver কনফিগার করা হয়, যার মাধ্যমে আপনাকে কাস্টম কনফিগারেশন করার দরকার নেই যদি আপনি ডিফল্ট কনফিগারেশন ব্যবহার করতে চান।

Spring Boot যেভাবে কাজ করে:

  • Thymeleaf টেমপ্লেটগুলি src/main/resources/templates/ ডিরেক্টরিতে রাখতে হবে।
  • application.properties ফাইলের মাধ্যমে ফাইলের prefix এবং suffix কনফিগার করা যাবে।

উপসংহার

View Resolver Spring MVC এবং Spring Boot অ্যাপ্লিকেশনে ভিউ টেমপ্লেট নির্বাচনে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। JSP এবং Thymeleaf দুটি জনপ্রিয় ভিউ টেমপ্লেট ইঞ্জিন, এবং এগুলির সাথে View Resolver কনফিগারেশন ব্যবহার করে Spring MVC অ্যাপ্লিকেশন তৈরি করা যায়।

  • JSP: Java-based টেমপ্লেট ইঞ্জিন, যা InternalResourceViewResolver এর মাধ্যমে কনফিগার করা হয়।
  • Thymeleaf: আধুনিক এবং শক্তিশালী টেমপ্লেট ইঞ্জিন, Spring Boot-এ ডিফল্টভাবে কনফিগার করা হয় এবং ThymeleafViewResolver ব্যবহার করে কাস্টমাইজ করা যায়।

আপনার প্রজেক্টের চাহিদা অনুযায়ী যেকোনো একটি ভিউ টেমপ্লেট ইঞ্জিন ব্যবহার করতে পারেন এবং View Resolver কনফিগারেশন মাধ্যমে তা পরিচালনা করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...