day08(商品详情页SKU联动+FreeMarker模版页面静态化)

day08(商品详情页SKU联动+FreeMarker模版页面静态化)
day08(商品详情页SKU联动+FreeMarker模版页面静态化)

模拟京东(8)

课程回顾:

1、前台系统的品牌展示

●品牌的修改或者添加时。将品牌信息保存到redis中

●品牌从redis获取(hash:id---name)

●redis内存数据库(支持的最大的阀值:8G key-value:使用较少的key

会定期清理、使用较少的key持久化到磁盘上。)

●window redis 启动redis服务数据没有了(没有持久化到磁盘上)

●开发环境:安装Linux上。redis单线程---- list fifo

2、条件是筛选

●品牌筛选:需要判断是否已选了价格

●价格筛选:需要判断是否已选了品牌

●service实现类处理:条件信息封装SolrQuery对象中。

1、brandId setFQ(“brandId:”+barndId)

2、price 切割[] length==2 [100 TO 200] else [1600 TO *]

●展示已选条件map(key,value)fn:length(map)

●将已选过的条件隐藏empty

3、ActiveMQ介绍和使用

●概念:消息队列(消息中间件MOM)。Apache的产品。使用最广泛(稳

定)。通信方式:异步通信。

●JMS:Java message service jms支持消息中间件供应商(ActiveMQ),spring

支持jms。ActiveMQ --- jms ---spring整合。

●jms发送消息方式:

1、point to point(点对点)生产者生产消息(queue1)消费者(queue1)

监听容器取出消息(将消息消费---处理业务)

2、p/s (消息的订阅与发布): 生产者生产消息-→可以被多个消费者

消费

●名词

1、jsmtemplate:发送消息到容器中

2、生产者:生产消息

3、消费者:需要监听mq容器。如果有自己的消息需要进行消费。

●ActiveMQ工作的原理

●本项目的使用场景--- p2p

1、商品上架isShow

2、service-product:生产者。将id发送mq

3、将商品保存到solr中交给service-solr服务(消费者)去执行。

课程计划:

1、去商品详情页(单品页)

2、sku的联动效果

3、freemarker的介绍

4、商品详情页的页面静态化

1去商品详情页

1.1分析

1、点击图片时,根据商品的id查询数据

2、查询的数据:product(商品信息)

3、查询的数据:sku(库存信息)

1.2修改jsp页面的请求路径

1.3搭建cms工程

1.3.1copy一些配置文件

1.3.2编辑web.xml

1.4编写service接口、实现类1.4.1编写CmsService接口

定义的方法:

1、根据商品的id查询商品信息

2、根据商品的id查询库存列表

1.4.2编写cms的实现类

更新:查询库存大于0 的

1.5配置dubbo服务

配置服务提供方:cms

配置服务消费方:portal

1.6编写controller

1.7jsp页面回显颜色:

商品信息:

1.8颜色重复

1.8.1bug

1.8.2set需要重新equals和hashcode方法对Color(id)重写equals和hashcode方法。

1.8.3将颜色信息放到set容器中(不能存放重复元素)

1.8.4jsp页面的颜色回显

2sku的联动效果

2.1选择颜色操作

2.2选择尺码

确定尺码后就确定了一条sku,确定了sku后就可以填充价格。

2.3进入详情页默认选择第一个颜色下的第一个尺码

最终

3freemarker介绍

3.1概念

FreeMarker是一款模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

FreeMarker是免费的,基于Apache许可证2.0版本发布。其模板编写为FreeMarker Template Language(FTL、html、txt),属于简单、专用的语言。需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算,之后模板显示已经准备好的数据。在模板中,主要用于如何展现数据,而在模板之外注意于要展示什么数据。

模板+数据----输出(将数据展示在静态页)。

3.2原理

模板+ 数据模型= 输出

我们准备模板、准备数据,通过Freemarker提供的类将模板生成静态页,并再该静态页上填充我们准备好的数据。

3.3语法

jsp:遍历list

empty

ftl:遍历list <#list list as product>${https://www.360docs.net/doc/ac8891098.html,}

<#inclurd>

<#if> ${keyword !}

3.4demo入门程序

4商品详情的页面静态化4.1分析

1、什么时候进行页面静态化---上架时生成静态化的页面。

2、构建数据到模板中---- 上架的过程中将页面静态化。

a、商品信息(商品id)

b、库存信息(商品id)

3、使用ActiveMQ的消息的订阅与发布

4、将生成的静态页的代码抽取到接口服务中StaticPageService。

方法:不需要返回值

形参:rootMap(静态页需要的数据)id(作为静态页的名称)4.2编写StaticPageService静态化服务

接口:

实现类:

4.3将静态服务交给spring管理

4.4生成页面静态化

4.4.1添加cms的配置文件---消息的订阅与发布模式

4.4.2自定义消息监听器

4.5更新service-product/solr中的ActiveMQ配置文件solr:

product:

4.6copy模板

4.6.1copy模板和静态资源

4.6.2修改模板

4.6.2.1修改product.html

4.6.2.2修改footer-links.html 略

4.6.2.3footer.html

4.6.2.4head.html

4.6.2.5shortcut.html 略。

4.7修改访问连接

相关主题
相关文档
最新文档