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"; }
到此这篇关于SpringBoot封装响应数据实现过程详解的文章就介绍到这了,更多相关SpringBoot封装响应数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
mybatis-plus多表分页查询最佳实现方法(非常简单)
这篇文章主要给大家介绍了关于mybatis-plus多表分页查询最佳实现方法,文中介绍的方法非常简单,MyBatis-Plus中分页查询是比较方便的,这个功能在网站中也是非常常用的,这方面的知识点是必备的知识点,需要的朋友可以参考下2023-08-08Spring中使用Async进行异步功能开发实战示例(大文件上传为例)
本文以大文件上传为例,首先讲解在未进行程序异步化时,程序的运行机制和具体表现,然后讲解如何进行异步化的改造,让程序进行异步执行,通过本文不仅能让你掌握如何进行Event的事件开发,同时还能掌握在Spring中如何进行异步开发,熟悉@Async的具体用法,感兴趣的朋友一起看看吧2024-08-08
最新评论