为了账号安全,请及时绑定邮箱和手机立即绑定

SpringMVC做电商项目,商品详情页使用freemarker静态化

标签:
Java

前言:
在在看视频学习电商网站的开发时,由于考虑到电商的前台,商品详情页届时将受到较大的访问量,若任然用jsp写,将给服务器带来很大的压力,故采用freemarker进行页面的静态化,在后台商品上架时,采用页面freemarker,生成商品的静态页。
1、写freemarker生成静态页的service接口及实现类。并将其在spring中进行注册(可采用注解@Service或者在spring的xml文件中进行注册)。实现类暂命名为StaticPageServiceImpl。
2、StaticPageServiceImpl拥有Configuration类的属性conf,可从org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer类的对象中获取;
conf=freeMarkerConfigurer.getConfiguration();
3、重点来啦,要重写接口的生成静态页的方法productIndex(),需要参数1、Map<String,Object> map(map为需要在静态页里生成的数据),2、Integer productId(productId为本次学习视频里,生成商品的id,便于辨识生成的商品静态页)。
第一步:创建输出流 writer out =null;
第二步:读取模板文件 Template template = conf.getTemplate("模板文件名字"),注:一般将模板文件路径在FreeMarkerConfigurer的templateLoaderPath属性中设置;
第三步: 获取输出html至哪个位置的路径
String path =this.getPath("/html/product/"+productId+".html");
第四步:创建生成的静态文件 File f = new File(path);
第五步:判断生成的静态文件的父类文件是否存在,不存在就创建此文件
if(!f.getParentFile().exists()) {
f.getParentFile().mkdirs();
}
第六步:给声明的输出流创建对象,指定文件输出流及其编码格式 out = new OutputStreamWriter(new FileOutputStream(f), "UTF-8");
第七步:使用生成的模板文件,读取打印要输入的数据对象映射Map<String,Object> root和输出流out:
template.process(root, out);
期间抛出或处理异常。
第八步:在controller中引用StaticPageService接口,如在商品确认上架后的上架controller方法中调用此方法,生成静态页。

点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消