Day3

淘淘商城第三天的内容主要是实现商品添加功能。主要功能分为以下几个部分:

1)商品类目选择;

2)图片服务器搭建;

3)图片上传功能;

4)富文本编辑器的使用以及商品添加功能的实现。

1、商品类目选择。

该部分需要显示商品的树状图,这部分教程视频出现卡顿看不见代码编写,所以主要参考网上资料,不是特别理解。不过还是实现了功能。

2、图片服务器的搭建。

该部分实现方式是CentOs6.5 + Nginx + vsftpd。在系统中安装CentOs6.5系统的虚拟机,然后搭建Nginx的http服务以及vsftpd的ftp文件上传服务,并且在OS宿主系统中使用FileZilla软件测试ftp上传文件的功能。主要参考了http://blog.csdn.net/yx0628/article/details/53148451以及http://blog.csdn.net/vchen_hao/article/details/53925082等博客进行安装。

3、图片上传功能的实现。

第一步,导入common-fileupload的依赖。

<!-- 文件上传组件 --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId></dependency>

第二步,在SpringMVC配置文件中添加文件上传解析器。

<!-- 定义文件上传解析器 --><bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- 设定默认编码 --><property name="defaultEncoding" value="UTF-8"></property><!-- 设定文件上传的最大值5MB,5*1024*1024 --><property name="maxUploadSize" value="5242880"></property></bean>

第三步,Service层的实现,代码如下:

@Service
public class PictureServiceImpl implements PictureService {@Value("${FTP_ADDRESS}")private String FTP_ADDRESS;@Value("${FTP_PORT}")private Integer FTP_PORT;@Value("${FTP_USERNAME}")private String FTP_USERNAME;@Value("${FTP_PASSWORD}")private String FTP_PASSWORD;@Value("${FTP_BASE_PATH}")private String FTP_BASE_PATH;@Value("${IMAGE_BASE_URL}")private String IMAGE_BASE_URL;@Overridepublic Map uploadPicture(MultipartFile uploadFile) {Map resultMap = new HashMap<>();try {String oldname = uploadFile.getOriginalFilename();//UUID.randomUUID();//图片名字生成String newname = IDUtils.genImageName();newname = newname + oldname.substring(oldname.lastIndexOf("."));//添加后缀,如jpg//图片上传String imagepath = new DateTime().toString("/yyyy/MM/dd");boolean result = FtpUtil.uploadFile(FTP_ADDRESS, FTP_PORT, FTP_USERNAME, FTP_PASSWORD,FTP_BASE_PATH, imagepath, newname, uploadFile.getInputStream());if(!result) {resultMap.put("error", 1);resultMap.put("message", "文件上传失败");return resultMap;}resultMap.put("error", 0);resultMap.put("url", IMAGE_BASE_URL + imagepath + "/" + newname);return resultMap;}catch(Exception e) {resultMap.put("error", 1);resultMap.put("message", "文件发生异常");return resultMap;}}}

1)上传文件时,所需要的一些固定参数选择从properties文件中获取而不是硬编码的方式。

2)图片名字生成使用IDUtils工具类,其实就是上传时间(毫秒级)加上0-999之间的一个随机数。

第四步,Controller层的实现。

@Controller
public class PictureController {@Autowiredprivate PictureService pictureService;@RequestMapping("/pic/upload")@ResponseBodypublic String pictureUpload(MultipartFile uploadFile) {Map result = pictureService.uploadPicture(uploadFile);String json = JsonUtils.objectToJson(result);return json;}}

用MultipartFile接收前端传来的图片,调用service层上传图片并获取一个map格式的返回值。然后用工具类把map类型的数据转化为String格式的数据,返回到前端(比起直接返回map,兼容性更强)。

4、新增商品实现。

1)Dao层,直接使用逆向工程生成的代码。

2)Service层,实现补全item的信息(前端只提交了部分信息,还有上传日期、商品id等信息需要补全)并将商品添加到数据库的功能,返回添加结果。

3)Controller层,使用TbItem接收前端发来的信息,此处注意TbItem的属性值需要和jsp中属性值的id对应上,这样controller可以将内容对应上。然后直接调用Service层方法,将新的商品信息添加到数据库,最后返回添加结果(添加成功)。

心得:熟悉了开发过程。首先分析前端页面向后端传输什么值,触发的URL访问路径,以及需要接收的值(一般是一定格式的JSON数据)。后端通常可以用POJO接收前端传来的数据,好处是封装数据,操作方便。然后找到对应的controller层(@RequestMapping(“URL”))调用service方法进行处理之后,返回处理消息(通常为json消息,@ResponseBody)。json消息可以返回POJO、MAP和String类型的数据,后端会把消息转化称JSON格式的数据,这样前端就能接收到值,得到反馈。

淘淘商城项目:Day3相关推荐

  1. 淘淘商城项目过程记录

    一.为什么要做这个项目 想想距上次写一个完整的项目已经过了很长时间,因为一直在学习其他的知识,对SSM 知识已经有了生疏,于是就想通过这个商城项目把所有的知识都串一遍,不仅能够回复以前的知识,也可以学 ...

  2. 淘淘商城项目mysql服务器_SpringMVC+Spring+Mybatis+Mysql+Maven+Svn[ 淘淘商城项目环境搭建 ]...

    背景:淘淘商城项目的环境搭建 说明:采用SpringMVC+Spring+Mybatis+Mysql+Maven+Svn结构搭建,在开发之中可以参考其结构和搭建步骤去搭建实际的工程项目 工程结构简图: ...

  3. 毕设ssm商城系统_ssm商城系统(爱淘淘购物)项目源码

    ssm商城系统(爱淘淘购物)项目演示 本系统采用SSM架构来搭建. 服务器:tomcat7 java虚拟机:jdk1.7 数据库:mysql 前端:Vue + Bootstrap 管理员用户:root ...

  4. SSM分布式项目之淘淘商城-第一天(IDEA)

    文章大纲 一.第一天课程计划 二.电商行业介绍 三.淘淘商城系统功能 四.系统架构 五.技术选型和开发环境 六.工程搭建 七.代码实现 八.参考文章 淘淘商城课程大纲 课程大纲 一共14天课程 (1) ...

  5. 淘淘商城项目报错 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-

    @[TOC](淘淘商城项目报错 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (d ...

  6. SSM项目之---淘淘商城(第一天)

    大家关注公众号"计算机视觉这件小事"或者"AI-ming3526" 回复关键字"淘淘商城"免费获取源码资源 有需求也可以加博主vx:xiao ...

  7. 淘淘商城的第一天(传智播客2015年9月份项目)

    主讲老师:入云龙 课程计划 一共14天课程 第一天:电商行业的背景.淘淘商城的介绍.搭建项目工程.Svn的使用. 第二天:框架的整合.后台管理商品列表的实现.分页插件. 第三天:后台管理.商品添加.商 ...

  8. 第一天-电商行业的背景,淘淘商城的介绍,搭建项目工程,svn的使用

    目录 1. 聊聊电商行业 1.1. 电商行业发展 1.2. 双十一 1.3. 电商行业技术特点 1.4 电商行业的模式 2. 淘淘商城 2.1. 淘淘商城简介 2.2. 功能架构 2.2.1. 系统功 ...

  9. 淘淘商城项目day01

    准备重新开始写一遍此项目,发现有时候光看会有很多细节没有注意到,或者转眼就忘了,所以以后每天都把今天学的东西都写下来,记录每一天的成长! 1.淘淘商城的技术选型 数据库:mysql Dao层:myba ...

最新文章

  1. poj2728(最优比率生成树)
  2. 【前沿技术】“中国天眼”观测到宇宙极端爆炸起源证据
  3. 游戏打包过程枯燥且繁琐,如何提升打包效率?
  4. 关于python变量的描述_Python变量命名的详细介绍
  5. matlab 写excel 慢_吐槽一下MATLAB的workspace
  6. java类内部的变量
  7. LeetCode 第 24 场双周赛(326/1898,前17.2%)
  8. nagios自定义监控脚本
  9. 力扣题目——107. 二叉树的层序遍历 II
  10. Java 中 Comparable 和 Comparator 比较(转)
  11. 突破网吧限制的安全技术(转)
  12. 【Python】一键爬取金庸连载版/三联版/世纪新修版小说
  13. 微信小程序云开发入门到放弃(一)入门篇
  14. 通过telnet命令使用SMTP、POP3协议收发邮件(以QQ邮箱为例)
  15. 华为u8500刷机、、root
  16. 统计各个分数段的人数python_怎么利用Excel统计各分数段的人数
  17. Axure高级功能(变量、动态面板[轮播图]、中继器)
  18. tableau server在centos7.6上安装记录
  19. 使用js关闭浏览器的方法
  20. 第十四届全国大学生信息安全竞赛-线上赛Writeup

热门文章

  1. 【转】零基础理解卷积神经网络
  2. 某雅思培训网站被挂 server.exe / Dropper.Win32.BlackHole.a / Backdoor.Win32.Hupigon.jmq
  3. 如何评价小米手机第二代M2
  4. 14-(基础入门篇)关于系统教程和基础教程后期规划
  5. MBD for MPC5744P
  6. 陶瓷餐具公司网站模板源码+易优CMS内核/带后台
  7. 佳能hdr_不要忘了相机自带的HDR功能_佳能 6D_数码影像评测-中关村在线
  8. List集合中文名排序
  9. 学习分享:学术前言趋势分析3—论文代码统计
  10. Radix-4加法器的性能分析——论文解析