javashop

一.javashop增删改查操作流程
1.前台:
(1).相应位置增加弹窗按钮
(2).主页面的js中编写相应脚本
a.将id,name传给map对象,其中
"href":弹窗填充表单的跳转方法action
"formId":弹窗填充表单的id
"url":弹窗上保存按钮对应的action
"title":弹窗上方显示文字
b.将map对象放入弹窗并设置弹窗的尺寸等参数
c."保存"按钮的js实现
savebtn.linkbutton("disable")是指将按钮设置为不激活状态
d.最终以ajax方式提交表单内容
$(map["formId"]).ajaxSubmit("options");
f.时间戳转换为当前时间:<@dateformat time="${(articlea.add_time)}" pattern="yyyy-MM-dd"/>

2.后台
(1)acton
[email protected]({
name="commission_list",type="freemarker",location="/b2b2c/admin/store/commission_list.html"})
↑ ↑
return的值 return值对应的html路径

[email protected]("commission") 
map["href"] = "commission!edit.do?id="+id 
方法访问代码中感叹号前的内容

(2)Manager
action中调用方法接口的实现类,封装各种与数据库交互的方法实现,主要用daoSupport中的方法。
(3)IManager
action中调用的方法接口

2.首页
(1)左侧分类栏
a.index页面发起请求后,通过GoodsCatTag类中的方法查询商品分类信息

b.index页面调用reception_header页面输出首页头部标签, ————<#include ‘common/reception_header.html‘/>
reception_header页面调用nav_menu页面 ————<#include ‘nav_menu.html‘/>

c.nav_menu页面加入freemaker标签代码调取后台GoodsCatTag查询结果
<!-- 创建菜单标签 -->
<#assign goodsCatTag= newTag("goodsCatTag")>
<!-- 调用商品分类信息 -->
<#assign goodsCat = goodsCatTag()!‘‘ >

d.用list标签遍历查询结果到页面
<#list goodsCat.cat_tree as cat >
<li class="f14 com1_w" cat_id="${cat_index+1}">
<div class="bnav_w">
<a href="${ctx}/goods_list.html?cat=${cat.cat_id}">${cat.name}</a>
</div> 
</li>
</#list>
其中,goodCat.cat_tree指GoodsCatTag类中的 List<Cat> cat_tree = goodsCatManager.listAllChildren(parentid);

================================================================================================================================
2.首页响应流程
(1)左侧所有商品分类部分
<1>.index.html页面中引用了reception_header.html页面,此页面中的
<#assign goodsCatTag= newTag("goodsCatTag")>声明了一个goodsCatTag= 标签,又通过
<#assign goodsCat = goodsCatTag()!‘‘ >引用了goodsCatTag标签,此时,freemaker会将参数传递给后台,而此时需要获取父级分类,故传入空字符串,
由后台if条件语句判断后取得parentid=0的参数,并最终获取一个json格式的数据传递给前台,具体获取流程与以下二级分类相同。
<1>.index.html页面中的<#assign goodsCatTag= newTag("goodsCatTag")>声明了一个goodsCatTag= 标签,当标签被引用时,freemaker会将参数传递给后台,
即,<#assign goodsCat = goodsCatTag("‘parentid‘:38,‘catimage‘:‘on‘")!‘‘ >
将parentid,catimage当做参数传递给exec(Map params)
<2>.exec方法中获取parentid参数(params.get("parentid");),即二级分类的分类id
<3>.List<Cat> cat_tree = goodsCatManager.listAllChildren(parentid);遍历所有当前二级分类的分类信息,赋值给变量名为"cat_tree"的list集合
<4>.若cat_tree不为空,则执行foreach语句将分类图标url依次set给cat对象"cat.setImage(imgPath);"
<5>.定义Map类型的data对象,放入showimage与cat_tree,函数返回data;
<6>.再次通过exec方法获取parentid参数,此时已获取顶层分类,故parentid不为0;
<7>.List<Cat> cat_tree = goodsCatManager.listAllChildren(parentid); 向方法中传入当前parentid,获取当前父分类的二级子分类;
<8>.调用foreach语句(for(Cat cat:cat_tree))将二级分类依次赋值给cat;
<9>.定义Map类型的data对象,将二级分类信息showimg与cat放入data对象,函数返回data
<10>.将返回的data,当做参数传递给BaseFreeMarkerTag类的exec(List jsonParam),将data对象转化为json格式对象
JSONObject jsonObject =JSONObject.fromObject(param);并返回一个object,HTML页面可用freemaker语法进行调用;
<*>.前台页面解析器FacadePageParser类,通过themeUriManager获得uri(themeUriManager.getPath(uri);),并解析得当前调用模板名为/index.html
if(tplFileName.equals("/")){
tplFileName="/index.html";
}
将uri return给前台模板处理器FacadePageParser中,返回"/"
即首页地址栏信息为"localhost:8080"

<11>.<#assign goodsCat = goodsCatTag("‘parentid‘:1,‘catimage‘:‘on‘")!‘‘ >
*前台index.html页面用freemaker语法将后台传入的map键值对取出,并将数据遍历定位在相应的页面表现位置;
<#list goodsCat.cat_tree as cat>
<#if cat_index<4>
<li class="<#if cat_index==0>tab_selected</#if>" rel="${cat.cat_id}">
<i class="<#if cat_index==0>arrow</#if>"></i>
<h3>${cat.name}</h3>
</li>
</#if> 
</#list>

(2).商品列表部分
<1>.index.html页面中的<#assign goodsListTag = newTag("goodsListTag")>声明了一个goodsListTag标签,当标签被引用时,freemaker会将参数传递给后台,
即,<#assign goodsList=goodsListTag("‘tagid‘:‘1‘,‘goodsnum‘:‘6‘")>
将tagid,goodsnum当做参数传递给exec(Map params)
String catid =(String) params.get("catid"); -------------此参数为空
String tagid = (String)params.get("tagid");
String goodsnum = (String)params.get("goodsnum");
<2>.根据tagid,goodsnum参数,通过goodsManager的listGoods方法查询相应商品,并存入List对象goodsList;
<3>.将goodsList对象传递给freemarker标签基类BaseFreeMarkerTag,执行return this.exec(jsonObject);,将goodsList转换为json格式数据
3.静态资源加载
EopContextIniter 41行

时间: 2024-10-04 20:39:25

javashop的相关文章

javashop每次重新部署都要从新安装的问题

javashop每次重新部署都要从新安装的问题 发现一个问题就是用MyEclipse是部署不上的,用eclipse才行. 这个问题的关键在于javashop有好多文件都是动态生成的,好多配置文件也是在安装的时候动态修改的 比如:jdbc.properties.eop.properties.还有其他的xml文件.生成的目录比较重要的是themes.products(这个记不太清了) 这些都可以在部署完以后,从tomcat中拷贝出来,放到自己的eclipse中. 每次从新安装问题:关键在instal

最好用的java商城_惠多javashop商城o2o优惠券系统介绍

[惠多o2o团购商城订餐外卖优惠券2015版] 演示网址如下: 惠多商城+优惠券: http://sc.shuidazhe.com/ 团购+优惠券: http://o2o.shuidazhe.com/ 外卖+优惠券: http://vps.shuidazhe.com/ 纯优惠券:    http://hd.shuidazhe.com/ 有好评,详细介绍,请点击:http://item.taobao.com/item.htm?spm=a1z10.1.w137644-79470039.15.UFyu

关于维护javaShop的一些总结

主要参考 pdf 找到对应的文件吧,具体怎么制作一个挂件 还没有理解里面的思路,就没有研究了,改一个商城项目遇到了,也只有慢慢解决 加油! 云盘永久有效链接:http://pan.baidu.com/s/1kTtdNBx 密码:lt5q

监控云—反盗版软件之利器!

随着全球信息化的发展,我国软件业发展迅速,与国外差距越来越小,在发展的同时,软件盗版,知识产权保护等问题也日渐凸显.美国微软每年在中国投入打击盗版的费用花费数十亿,但是收效甚微.office,3DMAX等等这些大众主流软件供应商,每年损失惨重,同时国内的一些自主研发的软件产品,比如电商软件提供商:shop++,shopEX,javaShop等软件都在网上出现以不同程度的盗卖,流通.给软件提供商公司的正常运营和经济效益带来了不同程度的影响.       近年来国家虽然对于盗版,知识产权保护这块也越

selenium docs

Note to the Reader - Docs Being Revised for Selenium 2.0! Introduction Test Automation for Web Applications To Automate or Not to Automate? Introducing Selenium Brief History of The Selenium Project Selenium’s Tool Suite Choosing Your Selenium Tool S

keepalived+amoeba+mysql-mmm+mysql实现mysql读写分离及高可用

最近尝试了一下mysql的读写分离和高可用的搭建.搭好之后体验了一下,效果还不错.这里跟大家分享一下. 1.首先介绍一下mysql-mmm这个工具是干嘛使的? 众所周知,mysql自身提供了AB复制.我们也可以很轻松的实现master-master双向复制,同时再为其中的一个master节点搭建一个slave库.这样就实现了master1与master2之间的双向复制,同时master1与slave1之间主从复制这样的架构.这样整个体系中就存在两个master,正常情况下只有一个master对外

利用gearman实现redis缓存mysql

环境: centos6.5 mysql5.6 gearman简介: Gearman是一个支持分布式的任务分发框架.设计简洁,获得了非常广泛的支持.一个典型的Gearman应用包括以下这些部分: Gearman Job Server:Gearman核心程序,以守护进程形式运行在后台 Gearman Client:可以理解为任务的收件员,比如我要在后台执行一个发送邮件的任务,可以在程序中调用一个Gearman Client并传入邮件的信息,然后就可以将执行结果立即展示给用户,而任务本身会慢慢在后台运

jquery实现多条件筛选特效代码分享

本文实例讲述了jquery实现多条件筛选特效.分享给大家供大家参考.具体如下:jquery实现的多条件搜索表单带日期选择表格表单效果源码,是一段实现了多个条件筛选搜索的特效代码,多条件拥有时间.地点.酒店位置及酒店名称等选项,同时在时间的输入表格中拥有时间选择功能,是一款非常实用的特效代码,值得大家学习.运行效果图:                        -------------------查看效果 下载源码------------------- Javashop商城系统,专业_省心

开源 java 电商系统

shop++是基于spring.springmvc等主流框架开发,参考资料比较全面,上手容易: 比 javashop 代码可读性好. 适合二次开发 6.broadleaf基于spring.Spring MVC.Spring Security.JPA and Hibernate.Compass andLucene.Quartz.Thymeleaf         除了免费社区版外,它还有收费企业版. 目标是开发企业级商务网站,它提供健壮的数据和服务模型.富客户端管理平台.以及一些核心电子商务有关的