Java之品优购课程讲义_day12(7)
商品详情页-读取 SKU 信息
需求:当我们选择规格后,应该在页面上更新商品名称为 SKU 的商品标题,价格也应该为
SKU 的商品价格。
4.1 页面生成 SKU 列表变量
4.1.1 后端服务层
修改 pinyougou-page-service 的 ItemPageServiceImpl.java
@Autowired
private TbItemMapper itemMapper;
@Override
public boolean genItemHtml(Long goodsId){
try {
Configuration configuration = freeMarkerConfig.getConfiguration(); Template template = configuration.getTemplate("item.ftl");
Map dataModel=new HashMap<>();
//1.加载商品表数据
//2.加载商品扩展表数据
//3.商品分类
//4.SKU 列表
TbItemExample example=new TbItemExample(); Criteria criteria = example.createCriteria();
criteria.andStatusEqualTo("1");//状态为有效
criteria.andGoodsIdEqualTo(goodsId);//指定 SPU ID
example.setOrderByClause("is_default desc");//按照状态降序,保证第一个为默
认
List<TbItem> itemList = itemMapper.selectByExample(example); dataModel.put("itemList", itemList);
Writer out=new FileWriter(pagedir+goodsId+".html"); template.process(dataModel, out);
out.close();
return true;
} catch (Exception e) { e.printStackTrace(); return false;
}
}
4.1.1 模板
修改模板:
<script>
//SKU 商品列表
var skuList=[
<#list itemList as item>
{
"id":${item.id?c}, "title":"${item.title!''}",
"price":${item.price?c},
"spec": ${item.spec}
} ,
</#list>
];
</script>
测试生成,发现页面源代码中生成了变量