模型数据处理-数据放入 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连支持一下,创造不易您们的支持是我的动力🤞

相关推荐
百事老饼干7 分钟前
Java[面试题]-真实面试
java·开发语言·面试
customer0815 分钟前
【开源免费】基于SpringBoot+Vue.JS医院管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·开源·intellij-idea
2402_8575893625 分钟前
SpringBoot框架:作业管理技术新解
java·spring boot·后端
HBryce2429 分钟前
缓存-基础概念
java·缓存
一只爱打拳的程序猿43 分钟前
【Spring】更加简单的将对象存入Spring中并使用
java·后端·spring
杨荧1 小时前
【JAVA毕业设计】基于Vue和SpringBoot的服装商城系统学科竞赛管理系统
java·开发语言·vue.js·spring boot·spring cloud·java-ee·kafka
minDuck1 小时前
ruoyi-vue集成tianai-captcha验证码
java·前端·vue.js
为将者,自当识天晓地。1 小时前
c++多线程
java·开发语言
daqinzl1 小时前
java获取机器ip、mac
java·mac·ip