SpringBoot封装响应数据实现过程详解
作者:春哥的魔法书 发布时间:2023-01-17 21:32:51
标签:SpringBoot,封装,响应数据
业务处理
这是通过 Spring 在 Controller中注入Service模型层
而在 Service模型层 结合 Mybatis / Mybatis-Plus 进行数据加工, 数据持久化
封装响应值
将 业务处理得到数据封装到 Model作用域中, 伴随着转页将信息传递到页面
传值容器
Model
在Controller中新建立 方法 test08, 并在参数中增加 Model, 注意导包
通过 Model 的 .addAttribute(key, value);
封装数据
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){
// 封装数据
model.addAttribute("data", "这是要响应的动态信息");
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>
在 浏览器中测试, 页面显示接收到的信息
ModelMap
Model 类 有个简化版本 ModelMap ,
因为此类是继承自 HashMap
, 所以可以使用.put( "key", value);
进行数据封装
当然还是可以使用 .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){
// 封装数据
// modelMap.put("data", "这是要响应的动态信息");
modelMap.addAttribute("data", "这是要响应的动态信息");
System.out.println(" controller 中的测试方法 test 09 ");
return "ref";
}
}
HttpServletRequest
本质上 Model 相当于 Request 作用域 , SpringBoot 也提供了 Request的使用
同样 可以使用参数传入 , 如 : 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(){
// 封装数据
request.setAttribute("data", "这是要响应的动态信息");
System.out.println(" controller 中的测试方法 test 11 ");
return "ref";
}
@RequestMapping("/test/test10")
public String test10(HttpServletRequest request){
// 封装数据
request.setAttribute("data", "这是要响应的动态信息");
System.out.println(" controller 中的测试方法 test 10 ");
return "ref";
}
}
重定向传值
在SpringBoot 中 重定向 就是 一个方法执行完, 再对另一个方法发请求
这时通过 Model 就不能传递值, 可以通过 RedirectAttributes
传值
从 test12 重定向 到 test13 以 data 为标识进行传值
@RequestMapping("/test/test12")
public String test12(RedirectAttributes redirectAttributes){
// 封装数据
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";
}
来源:https://blog.csdn.net/yuanchun05/article/details/130629864
0
投稿
猜你喜欢
- 简介happens-before是JMM的核心概念。理解happens-before是了解JMM的关键。1、设计意图JMM的设计需要考虑两个
- 前提:当我们使用Winform开发的时候,经常会遇到:System.InvalidOperationException:&ldquo
- 经过上一篇的介绍,相信小伙伴们已经按奈不住内心对springboot的向往,本篇我将继续向小伙伴介绍springboot配置文件的配置,已经
- 1. 将一些需要变动的配置写在属性文件中比如,没有把一些需要并发执行时使用的线程数设置成可在属性文件中配置。那么你的程序无论在DEV环境中,
- 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。数组虽然也可以存
- 提到类型转换,首先要明确C#中的数据类型,主要分为值类型和引用类型:1.常用的值类型有:(struct)整型家族:int,byte,char
- 用java来打包文件生成压缩文件,有两个地方会出现乱码:内容的中文乱码问题:修改sun的源码。使用开源的类库org.apache.tools
- @Cacheable在同一类中方法调用无效上述图片中,同一个类中genLiveBullets()方法调用同类中的queryLiveByRoo
- 有个小伙伴遇到了这样一个问题,就是AutoCompleteTextView实现自动填充的功能。同时要具备手机格式化的功能。下拉列表最后一行是
- CSDN 的小伙伴们,大家好,我是沉默王二。重写(Overriding)算是 Java 中一个非常重要的概念,理解重写到底是什么对每个 Ja
- 前言gps定位服务的学习是这段时间gps课程的学习内容,之前老师一直在将概念,今天终于是实践课(其实就是给了一个案例,让自己照着敲).不过在
- 在阻塞队里中,除了对元素进行增加和删除外,我们可以把元素的删除做一个延迟的处理,即使用DelayQueue的方法。本文就来和大家聊聊Java
- transferTo(File file)的路径问题今天看到layui的文件上传的控件,就尝试了一下。简单创建了一个SpringMVC项目。
- java接口返回参数按照请求参数进行排序在项目实际开发中可能遇到过这种问题,接口请求参数顺序是[a,b,c],结果返回的数据是[bObjec
- 依赖<dependency> <groupId>com.baomidou</groupId> <a
- 本文为大家分析了Java中字符流与字节流的区别,供大家参考,具体内容如下1. 什么是流 Java中的流是
- 前言本文主要给大家介绍了关于Spring4自定义@Value功能的相关内容,使用的Spring版本4.3.10.RELEASE,下面话不多说
- JAVA多线程断点下载原理如图:代码如下:import java.io.BufferedReader; import java.io.Fil
- Redis缓存中间件缓存是什么  所谓缓存就是数据交换的缓冲区(称作Cache [ k&aeli
- 目录引言SqlSessionFactory不使用 XML 构建 SqlSessionFactorySqlSessionFactoryBuil