溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SpringBoot封裝響應(yīng)數(shù)據(jù)怎么實現(xiàn)

發(fā)布時間:2023-11-07 15:15:55 來源:億速云 閱讀:107 作者:栢白 欄目:開發(fā)技術(shù)

今天小編給大家分享的是SpringBoot封裝響應(yīng)數(shù)據(jù)怎么實現(xiàn),相信很多人都不太了解,為了讓大家更加了解,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會有所收獲的哦。

業(yè)務(wù)處理

這是通過 Spring 在 Controller中注入Service模型層

而在 Service模型層 結(jié)合 Mybatis / Mybatis-Plus 進行數(shù)據(jù)加工, 數(shù)據(jù)持久化

封裝響應(yīng)值

將 業(yè)務(wù)處理得到數(shù)據(jù)封裝到 Model作用域中, 伴隨著轉(zhuǎn)頁將信息傳遞到頁面

傳值容器

Model

在Controller中新建立 方法 test08, 并在參數(shù)中增加 Model, 注意導(dǎo)包

通過 Model 的 .addAttribute(key, value); 封裝數(shù)據(jù)

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.ui.Model;
@Controller
public class TestController {
    @RequestMapping("/test/test08")
    public String test08(Model model){
        // 封裝數(shù)據(jù)
        model.addAttribute("data", "這是要響應(yīng)的動態(tài)信息");
        System.out.println(" controller 中的測試方法 test 08 ");
        return "ref";
    }
}

修改ref.html頁面 使用 thymeleaf 接值

<!DOCTYPE html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    hello spring boot <br>
    <span th:text="${data}"></span>
</body>
</html>

在 瀏覽器中測試, 頁面顯示接收到的信息

SpringBoot封裝響應(yīng)數(shù)據(jù)怎么實現(xiàn)

ModelMap

Model 類 有個簡化版本 ModelMap ,

因為此類是繼承自 HashMap, 所以可以使用.put( "key", value);進行數(shù)據(jù)封裝

當(dāng)然還是可以使用 .addAttribute("key", value); , 推薦使用這個方法 , 相比 put()方法, 這個方法增加驗證代碼

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.ui.ModelMap;
@Controller
public class TestController {
    @RequestMapping("/test/test09")
    public String test09(ModelMap modelMap){
        // 封裝數(shù)據(jù)
        // modelMap.put("data", "這是要響應(yīng)的動態(tài)信息");
        modelMap.addAttribute("data", "這是要響應(yīng)的動態(tài)信息");
        System.out.println(" controller 中的測試方法 test 09 ");
        return "ref";
    }
}
HttpServletRequest

本質(zhì)上 Model 相當(dāng)于 Request 作用域 , SpringBoot 也提供了 Request的使用

同樣 可以使用參數(shù)傳入 , 如 : test10

也可以通過 Spring 的依賴注入方式 , 如 : test11

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
@Controller
public class TestController {
    @Autowired
    private HttpServletRequest request;
    @RequestMapping("/test/test11")
    public String test11(){
        // 封裝數(shù)據(jù)
        request.setAttribute("data", "這是要響應(yīng)的動態(tài)信息");
        System.out.println(" controller 中的測試方法 test 11 ");
        return "ref";
    }
    @RequestMapping("/test/test10")
    public String test10(HttpServletRequest request){
        // 封裝數(shù)據(jù)
        request.setAttribute("data", "這是要響應(yīng)的動態(tài)信息");
        System.out.println(" controller 中的測試方法 test 10 ");
        return "ref";
    }
}

重定向傳值

在SpringBoot 中 重定向 就是 一個方法執(zhí)行完, 再對另一個方法發(fā)請求

這時通過 Model 就不能傳遞值, 可以通過 RedirectAttributes 傳值

從 test12 重定向 到 test13 以 data 為標(biāo)識進行傳值

    @RequestMapping("/test/test12")
    public String test12(RedirectAttributes redirectAttributes){
        // 封裝數(shù)據(jù)
        redirectAttributes.addAttribute("data", "這是重定向傳遞的信息");
        System.out.println(" controller 中的測試方法 test 12 ");
        return "redirect:test13";
    }
    @RequestMapping("/test/test13")
    public String test13(String data){
        System.out.println("data = " + data);
        System.out.println(" controller 中的測試方法 test 13 ");
        return "ref";
    }

關(guān)于SpringBoot封裝響應(yīng)數(shù)據(jù)怎么實現(xiàn)就分享到這里了,希望以上內(nèi)容可以對大家有一定的參考價值,可以學(xué)以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI