SpringMVC 如何更新session的数据

如何更新session的数据,我通过下面一种覆盖session数据的方式达到更新session数据。

一、更新之前的数据

更新之前的数据如下

mysql> select * from seller;
+----+-------------------+----------------------+-------------------+
| id | shop_name         | seller_account       | password          |
+----+-------------------+----------------------+-------------------+
|  9 | NULL              | qwerty               | 123456            |
+----+-------------------+----------------------+-------------------+

本人用的引擎模板是thymeleaf,通过session.seller,打印在页面上,从下面图的打印结果可知商品名称是空值。用jsp的话,也可以用对应的语法调试(好像是<% out.print( session.seller); %>),会用jsp的开发人员应该知道怎么用。下面代码是在前台输入,用来测试打印结果是什么。

<span th:text="${session.seller}"></span>

在这里插入图片描述

二、更新之后数据

更新之后的数据如下

mysql> select * from seller;
+----+-------------------+----------------------+-------------------+
| id | shop_name         | seller_account       | password          |
+----+-------------------+----------------------+-------------------+
|  9 | 50年老火股        | qwerty               | 123456            |
+----+-------------------+----------------------+-------------------+

在这里插入图片描述
从打印结果可知店铺名称更新值了,session的数据成功更新。

三、源代码

@Controller
@SessionAttributes(value = { "seller" })
@RequestMapping("seller")
public class SellerController {
	@Autowired(required = false)
	private HttpSession sellerSession;
	@PutMapping("/home")

//@SessionAttribute Seller seller 可以从SessionAttributes获取session数据,但是该session的seller其中属性没更新
	public String updateShopName(@RequestParam String shopName, @SessionAttribute Seller seller) {
		sellerService.updateShopName(shopName, id()); //模拟数据库更新店铺名称
		seller.setShopName(shopName);	//修改@SessionAttributes中的seller的店铺名称
		sellerSession.setAttribute("seller", seller); //覆盖@SessionAttributes中的seller,完成更新数据
		return "seller/home";
	}
	}

大家可以通过上面的方法改变你们自己的方法,欢迎评论和指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值