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


猜你喜欢
- 我就废话不多说了,大家还是直接看代码吧~Map<String, List<CommentQuery>> commen
- 本文实例讲述了Android实现手机壁纸改变的方法。分享给大家供大家参考。具体如下:main.xml布局文件:<?xml versio
- Feign自定义注解翻译器新建自定义注解MyUrlpackage org.crazyit.cloud.contract; impo
- 1.char数组(字符数组)->字符串可以通过:使用String.copyValueOf(charArray)函数实现。举例:char
- DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数
- 本文实例为大家分享了springboot读取application.yaml文件数据的具体代码,供大家参考,具体内容如下提示:以下是本篇文章
- 导读Spring Boot应用可以使用spring-boot-maven-plugin快速打包,构建一个可执行jar。Spring Boot
- 在Thread中注入Bean无效在Spring项目中,有时需要新开线程完成一些复杂任务,而线程中可能需要注入一些服务。而通过Spring注入
- 本文实例为大家分享了android自定义滚动上下回弹scollView的具体代码,供大家参考,具体内容如下这是一个自定义view,在xml布
- 一、问题描述开发中,需要使Decimal类型数据保留小数点后的两位小数且不需要进行四舍五入操作,即直接截取小数点后面的两位小数即可。例如:1
- Android 使用AsyncTask设置请求超时的注意事项final AsyncTaskTools task = new AsyncTas
- /// <summary> /// 汉字转拼音缩写 /// </summary> /// <param nam
- 一些公共的模板############################################### 对于一些基本指令的添加####
- SpringDataJpa like查询无效这里写自定义目录标题SpringDataJpa like查询@Query(value = &qu
- 1、Android屏幕常亮/点亮 //保持屏幕常亮 PowerManager pm = (PowerManager) getSystemSe
- 1、WinForm中datagridview增加行号在界面上拖一个控件dataGridView1,在datagridview添加行事件中添加
- 文件上传的方法主要目前有两个常用的,一个是SmartUpload,一个是Apache的Commons fileupload.我们这里主要介绍
- 二维数组实现数字拼图,供大家参考,具体内容如下二维数组可以自己随意定义大小,通过方法判断来实现对所有的数字进行随机打乱,并可以通过移动来正确
- anroid 5.0 Design v7 包中引用了TabLayout 简单快速的写出属于自己的Tab切换效果 如图所示:但是正
- Json的简介JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个