😀前言
本文详细讲解了模型数据处理-数据放入 session和@ModelAttribute 实现 prepare 方法详细讲解
🏠个人主页:尘觉主页
🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉
在csdn获奖荣誉: 🏆csdn城市之星2名
💓Java全栈群星计划top前5
🤗 端午大礼包获得者
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊
文章目录
- 💗模型数据处理-数据放入 session和@ModelAttribute 实现 prepare 方法详细讲解
- 💞模型数据处理-数据放入 session
- 🤔● 说明
- 修改 model_data.jsp, 增加代码
- 修改 VoteHandler.java 增加方法
- 修改vote_ok.jsp增加代码
- 完成测试(Postman 测试)
- 🐤@ModelAttribute 实现 prepare 方法
- 🤔● 基本说明
- 修改 VoteHandler 增加方法 并测试
- @ModelAttribute 最佳实践
- 😄总结
💗模型数据处理-数据放入 session和@ModelAttribute 实现 prepare 方法详细讲解
💞模型数据处理-数据放入 session
🤔● 说明
开发中, 控制器/处理器中获取的数据如何放入 session 域,然后在前端(VUE/JSP/…)取出显示
修改 model_data.jsp, 增加代码
<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 增加方法
@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增加代码
<hr>
取出 session域的数据 <br>
address: ${sessionScope.address}<br>
主人名字= ${sessionScope.master.name}
主人信息= ${sessionScope.master}
完成测试(Postman 测试)
🐤@ModelAttribute 实现 prepare 方法
🤔● 基本说明
开发中,有时需要使用某个前置方法(比如 prepareXxx(), 方法名由程序员定)给目标方法准备一个模型对象
-
@ModelAttribute 注解可以实现 这样的需求
-
在某个方法上,增加了@ModelAttribute 注解后
-
那么在调用该 Handler 的任何一个方法时,都会先调用这个方法
修改 VoteHandler 增加方法 并测试
@RequestMapping("/vote")
@Controller
public class VoteHandler {
@ModelAttribute
public void prepareModel(){
System.out.println("prepareModel()-----完成准备工作-----");
}
}
@ModelAttribute 最佳实践
● 修改用户信息(就是经典的使用这种机制的应用),流程如下:
-
在修改前,在前置方法中从数据库查出这个用户
-
在修改方法(目标方法)中,可以使用前置方法从数据库查询的用户
-
如果表单中对用户的某个属性修改了,则以新的数据为准,如果没有修改,则以数据库的信息为准,比如,用户的某个属性不能修改,就保持原来的值
😄总结
😁热门专栏推荐
想学习vue的可以看看这个
java基础合集
数据库合集
redis合集
nginx合集
linux合集
等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持
🤔欢迎大家加入我的社区 尘觉社区
文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞