商品详情页-读取 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>

测试生成,发现页面源代码中生成了变量