概述
开发web项目时,总会遇到实现添加某个物品,本文将带你探知具有复杂属性的物品添加,从三方面介绍:
商品类目,图片上传,富文本编辑器
一、商品类目
1.需求
2.EasyUI tree数据结构
参考官方文档
数据结构中必须包含:
Id:节点id
Text:节点名称
State:如果不是叶子节点就是close,叶子节点就是open。Close的节点点击后会在此发送请求查询子项目。
3.代码实现
这里如果是父节点,EasyUI已经帮我们封装好了展开,我们只需要开发查询还有叶子节点的全部展开即可
3.1Mapper
使用逆向工程生成
3.2Service
由于tree要返回特定格式数据,我们需要在common创建一个pojo
1 | public class EUITreeNode { |
1 | /** |
3.3Controller
1 | /** |
二、图片上传
1.环境分析
1.1传统项目中的图片管理
传统项目中,可以在web项目中添加一个文件夹,来存放上传的图片。例如在工程的根目录WebRoot下创建一个images文件夹。把图片存放在此文件夹中就可以直接使用在工程中引用。
优点:引用方便,便于管理
缺点:
1、如果是分布式环境图片引用会出现问题。比如一个人在服务器1上传了图片,当他想要取时,服务器2在给他提供服务,这时候就去不到上传的图片了
2、图片的下载会给服务器增加额外的压力
1.2分布式环境的图片管理
分布式环境一般都有一个专门的图片服务器存放图片。
我们使用虚拟机搭建一个专门的服务器来存放图片。在此服务器上安装一个nginx来提供http服务,安装一个ftp服务器来提供图片上传服务。
2.搭建图片服务器
在Linux上具体安装搭建过程详情见另外两篇博客《Linux安装ftp组件(CentOS6.5为例)》《Linux下nginx的安装和使用(CentOS6.5为例)》
3.图片上传实现
3.1需求分析
初始化参数
url:/pic/upload
参数名称:uploadFile
结果数据类型json(参考文档:http://kindeditor.net/docs/upload.html)
1 | //成功时 |
3.2Service
配置资源配置文件upload.properties
1 | #FTP相关配置 |
修改application
为了随机生成一个符合要求的文件名,我们导入工具类IDUtils.java
1 | package com.taotao.common.utils; |
Service实现
1 |
|
3.3Controller
功能:接收页面传递过来的图片。调用service上传到图片服务器。返回结果。
参数:MultiPartFile uploadFile
返回值:返回json数据,应该返回一个Map,key是要求的格式,value是值。
由于我们的参数是MultiPartFile,我们需要在Springmvc.xml中定义文件上传解析器
1 | <!-- 定义文件上传解析器 --> |
为了保证功能的兼容性,需要把result转换成json格式的字符串,这样就能避免部分浏览器不支持把对象自动转成json字符串的问题了,我们这里需要一个工具类JsonUtils.java
1 | package com.taotao.common.utils; |
Controller实现
1 | /** |
三、富文本编辑器(kindeditor)
使用方法
1、导入js
2、在富文本编辑器出现的位置添加一个input 类型为textarea
3、调用js方法初始化富文本编辑器
4、提交表单时,调用富文本编辑器的同步方法sync,把富文本编辑器中的内容同步到textarea中
四、商品添加功能实现
1.分析
1、请求的url:/item/save,以post 的形式将表单的内容提交。
2、返回的结果:淘淘自定义返回结果:1、状态码2、响应的消息3、响应的数据
1 | /** |
2.Service
1 |
|
3.Controller
1 |
|
结语
当你觉得你不行的时候,你就走到斑马线上,你就是个行人😏
可惜你还是步行🙄
55555555555