iT邦幫忙

2023 iThome 鐵人賽

DAY 17
1

Model

MVC 最後一個,M 代表 Model,它是模型的縮寫,指的是應用程式的數據和業務邏輯處理。模型通常獨立於使用者界面或視圖,這意味著它可以被多個 View 和 Controller 共享。

首先我們建立一個 Restaurant 類:

public class Restaurant {
    private String chef;
    private String food;

    public Restaurant(String chef, String food) {
        this.chef = chef;
        this.food = food;
    }

    public String getChef() {
        return chef;
    }

    public String getFood() {
        return food;
    }
}

接下來,回到我們的 Controller 中處理請求:

package com.example.spring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloController {

    @RequestMapping("/hello") 
    public ModelAndView helloWorld() {

        ModelAndView modelAndView = new ModelAndView("helloView");

				// 建立一個 Restaurant 物件
        Restaurant restaurant = new Restaurant("John", "Meat")
				
				// 將 Restaurant 加到模型中
				modelAndView.addAttribute("restaurant", restaurant);

				// 回傳 ModelAndView 物件
        return modelAndView; 
    }
}

最後,從我們建立的 jsp 文件顯示:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>Hello JSP Page</title>
</head>
<body>
    <h1>餐廳</h1>
    <p>主廚:${restaurant.chef}</p>
    <p>食材:${restaurant.food}</p>
</body>
</html>

在 jsp 中,${restaurant.chef}${restaurant.food} 將從模型中得到餐廳類別的屬性參數,最後在畫面上呈現出來。

這就是一個完整的 MVC 範例,講解了了如何在 Controller 中使用模型來傳遞數據,並在前端頁面中顯示。

參考資料

https://spring.io/guides/gs/serving-web-content/
https://www.baeldung.com/spring-mvc-tutorial


上一篇
Day 16 : MVC 的 V,網頁呈現
下一篇
Day 18 : @Service 服務生:請問你需要什麼服務嗎?
系列文
Spring、Spirng MVC 及 Spring Boot 自主學習旅途!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言