模型数据处理-数据放入 session和@ModelAttribute 实现 prepare 方法详细讲解

😀前言

本文详细讲解了模型数据处理-数据放入 session和@ModelAttribute 实现 prepare 方法详细讲解

🏠个人主页:尘觉主页

🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

在csdn获奖荣誉: 🏆csdn城市之星2名

⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 💓Java全栈群星计划top前5

⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 🤗 端午大礼包获得者

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰

如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊

文章目录

  • [💗模型数据处理-数据放入 session和@ModelAttribute 实现 prepare 方法详细讲解](#💗模型数据处理-数据放入 session和@ModelAttribute 实现 prepare 方法详细讲解)
    • [💞模型数据处理-数据放入 session](#💞模型数据处理-数据放入 session)
      • [🤔● 说明](#🤔● 说明)
      • [修改 model_data.jsp, 增加代码](#修改 model_data.jsp, 增加代码)
      • [修改 VoteHandler.java 增加方法](#修改 VoteHandler.java 增加方法)
      • 修改vote_ok.jsp增加代码
      • [完成测试(Postman 测试)](#完成测试(Postman 测试))
    • [🐤@ModelAttribute 实现 prepare 方法](#🐤@ModelAttribute 实现 prepare 方法)
      • [🤔● 基本说明](#🤔● 基本说明)
      • [修改 VoteHandler 增加方法 并测试](#修改 VoteHandler 增加方法 并测试)
      • [@ModelAttribute 最佳实践](#@ModelAttribute 最佳实践)
    • 😄总结

💗模型数据处理-数据放入 session和@ModelAttribute 实现 prepare 方法详细讲解

💞模型数据处理-数据放入 session

🤔● 说明

开发中, 控制器/处理器中获取的数据如何放入 session 域,然后在前端(VUE/JSP/...)取出显示

修改 model_data.jsp, 增加代码

html 复制代码
<h1>添加主人信息[测试session]</h1>
<form action="vote/vote08" method="post">
    主人号:<input type="text" name="id"><br>
    主人名:<input type="text" name="name"><br>
    宠物号:<input type="text" name="pet.id"><br>
    宠物名:<input type="text" name="pet.name"><br>
    <input type="submit" value="添加主人和宠物">
</form>

修改 VoteHandler.java 增加方法

java 复制代码
@RequestMapping("/vote")
@Controller
public class VoteHandler {
    @RequestMapping(value = "/vote08")
    public String test08(Master master, HttpSession httpSession) {
        System.out.println("----test08----");
        //master对象是默认放在request域
        //我们将master对象放入到session域
        httpSession.setAttribute("master", master);
        httpSession.setAttribute("address", "guangzhou");

        return "vote_ok";//请求转发
    }
}

修改vote_ok.jsp增加代码

html 复制代码
<hr>
取出 session域的数据 <br>
address: ${sessionScope.address}<br>
主人名字= ${sessionScope.master.name}
主人信息= ${sessionScope.master}

完成测试(Postman 测试)

🐤@ModelAttribute 实现 prepare 方法

🤔● 基本说明

开发中,有时需要使用某个前置方法(比如 prepareXxx(), 方法名由程序员定)给目标方法准备一个模型对象

  1. @ModelAttribute 注解可以实现 这样的需求

  2. 在某个方法上,增加了@ModelAttribute 注解后

  3. 那么在调用该 Handler 的任何一个方法时,都会先调用这个方法

修改 VoteHandler 增加方法 并测试

java 复制代码
@RequestMapping("/vote")
@Controller
public class VoteHandler {

    @ModelAttribute
    public void prepareModel(){
        System.out.println("prepareModel()-----完成准备工作-----");
    }
}

@ModelAttribute 最佳实践

● 修改用户信息(就是经典的使用这种机制的应用),流程如下:

  1. 在修改前,在前置方法中从数据库查出这个用户

  2. 在修改方法(目标方法)中,可以使用前置方法从数据库查询的用户

  3. 如果表单中对用户的某个属性修改了,则以新的数据为准,如果没有修改,则以数据库的信息为准,比如,用户的某个属性不能修改,就保持原来的值

😄总结

😁热门专栏推荐
想学习vue的可以看看这个

java基础合集

数据库合集

redis合集

nginx合集

linux合集

等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持

🤔欢迎大家加入我的社区 尘觉社区

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁

希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻

如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

相关推荐
bug菌¹2 分钟前
滚雪球学SpringCloud[4.1讲]: Spring Cloud Gateway详解
java·spring cloud·微服务
bug菌¹5 分钟前
滚雪球学SpringCloud[4.2讲]: Zuul:Netflix API Gateway详解
spring·spring cloud·gateway
小哇66616 分钟前
spring-TransactionTemplate 编程式事务
数据库·spring
MuseLss21 分钟前
HashMap高频面试知识点
java·开发语言·哈希算法
tyler-泰勒23 分钟前
初始c++:入门基础(完结)
java·开发语言·c++
重生之我要进大厂1 小时前
LeetCode 876
java·开发语言·数据结构·算法·leetcode
_祝你今天愉快1 小时前
技术成神之路:设计模式(十四)享元模式
java·设计模式
小筱在线1 小时前
SpringCloud微服务实现服务熔断的实践指南
java·spring cloud·微服务
luoluoal2 小时前
java项目之基于Spring Boot智能无人仓库管理源码(springboot+vue)
java·vue.js·spring boot
ChinaRainbowSea2 小时前
十三,Spring Boot 中注入 Servlet,Filter,Listener
java·spring boot·spring·servlet·web