// 重写方法,保存对象的同时处理价格精度并生成HTML静态文件
 @Override
 public String save(Product product) {
   HtmlConfig htmlConfig = TemplateConfigUtil.getHtmlConfig(HtmlConfig.PRODUCT_CONTENT);
   String htmlFilePath = htmlConfig.getHtmlFilePath();
   product.setHtmlFilePath(htmlFilePath);
   String id = productDao.save(product);
   productDao.flush();
   productDao.evict(product);
   product = productDao.load(id);
   if (product.getIsMarketable()) {
     htmlService.productContentBuildHtml(product);
   }
   return id;
 }
 // 重写方法,更新对象的同时处理价格精度并重新生成HTML静态文件
 @Override
 public void update(Product product) {
   String id = product.getId();
   File htmlFile =
       new File(ServletActionContext.getServletContext().getRealPath(product.getHtmlFilePath()));
   if (htmlFile.exists()) {
     htmlFile.delete();
   }
   productDao.update(product);
   productDao.flush();
   productDao.evict(product);
   product = productDao.load(id);
   if (product.getIsMarketable()) {
     htmlService.productContentBuildHtml(product);
   }
 }