实现goods_list.html中的详情功能
<!--这句话跳转到GoodsController的detail方法下-->><td><a th:href="'/goods/to_detail/'+${goods.id}">详情</a></td>
Controller层
在GoodsController中添加一个这样的方法
//@PathVariable???@RequestMapping("/to_detail/{goodsId}")public String detail(Model model, MiaoshaUser miaoshaUser,@PathVariable("goodsId")long goodsId){model.addAttribute("user",miaoshaUser);GoodsVo goods = goodsService.getGoodsVoByGoodsId(goodsId);model.addAttribute("goods", goods);long startAt = goods.getStartDate().getTime();long endAt = goods.getEndDate().getTime();long now = System.currentTimeMillis();int miaoshaStatus = 0;int remainSeconds = 0;if(now < startAt ) {//秒杀还没开始,倒计时miaoshaStatus = 0;remainSeconds = (int)((startAt - now )/1000);}else if(now > endAt){//秒杀已经结束miaoshaStatus = 2;remainSeconds = -1;}else {//秒杀进行中miaoshaStatus = 1;remainSeconds = 0;}model.addAttribute("miaoshaStatus", miaoshaStatus);model.addAttribute("remainSeconds", remainSeconds);return "goods_detail";}
Service层
public GoodsVo getGoodsVoByGoodsId(long goodsId){int count = goodsDao.getGoodsVoByGoodsId(goodsId).getStockCount(); return goodsDao.getGoodsVoByGoodsId(goodsId);}
Dao层
@Mapperpublic interface GoodsDao {@Select("select g.*,mg.stock_count, mg.start_date, mg.end_date,mg.miaosha_price from miaosha_goods mg left join goods g on mg.goods_id = g.id")public List<GoodsVo> listGoodsVo();@Select("select g.*,mg.stock_count, mg.start_date, mg.end_date,mg.miaosha_price from miaosha_goods mg left join goods g on mg.goods_id = g.id where g.id = #{goodsId}")public GoodsVo getGoodsVoByGoodsId(@Param("goodsId")long goodsId);}
静态页面
<!DOCTYPE HTML><html xmlns:th=""><head><title>商品</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><!-- jquery --><script type="text/javascript" th:src="@{/js/jquery.min.js}"></script><!-- bootstrap --><link rel="stylesheet" type="text/css" th:href="@{/bootstrap/css/bootstrap.min.css}" /><script type="text/javascript" th:src="@{/bootstrap/js/bootstrap.min.js}"></script><!-- jquery-validator --><script type="text/javascript" th:src="@{/jquery-validation/jquery.validate.min.js}"></script><script type="text/javascript" th:src="@{/jquery-validation/localization/messages_zh.min.js}"></script><!-- layer --><script type="text/javascript" th:src="@{/layer/layer.js}"></script><!-- md5.js --><script type="text/javascript" th:src="@{/js/md5.min.js}"></script><!-- common.js --><script type="text/javascript" th:src="@{/js/common.js}"></script></head><body><div class="panel panel-default"><div class="panel-heading">秒杀商品详情</div><div class="panel-body"><span th:if="${user eq null}"> 您还没有登录,请登陆后再操作<br/></span><span>没有收货地址的提示。。。</span></div><table class="table" id="goodslist"><tr><td>商品名称</td><td colspan="3" th:text="${goods.goodsName}"></td></tr><tr><td>商品图片</td><td colspan="3"><img th:src="@{${goods.goodsImg}}" width="200" height="200" /></td></tr><tr><td>秒杀开始时间</td><td th:text="${#dates.format(goods.startDate, 'yyyy-MM-dd HH:mm:ss')}"></td><td id="miaoshaTip"><input type="hidden" id="remainSeconds" th:value="${remainSeconds}" /><span th:if="${miaoshaStatus eq 0}">秒杀倒计时:<span id="countDown" th:text="${remainSeconds}"></span>秒</span><span th:if="${miaoshaStatus eq 1}">秒杀进行中</span><span th:if="${miaoshaStatus eq 2}">秒杀已结束</span></td><td><form id="miaoshaForm" method="post" action="/miaosha/do_miaosha"><button class="btn btn-primary btn-block" type="submit" id="buyButton">立即秒杀</button><input type="hidden" name="goodsId" th:value="${goods.id}" /></form></td></tr><tr><td>商品原价</td><td colspan="3" th:text="${goods.goodsPrice}"></td></tr><tr><td>秒杀价</td><td colspan="3" th:text="${goods.miaoshaPrice}"></td></tr><tr><td>库存数量</td><td colspan="3" th:text="${goods.stockCount}"></td></tr></table></div><!--<p th:text="'hello:'+${user.nickname}" ></p>--></body></html>