完整案例
github自己下下来,就是个很一般的ssm项目,但基本功能都有,已部署到云平台。
后台管理员地址
暑假时候没做完凑合看吧
账号 17679210786 密码 123456 前后台都是,前台可以自己用手机号注册,别删除原来的内容
显示用户前端页面
<%--
Created by IntelliJ IDEA.
User: 廖泽铭
Date: 2019/7/22
Time: 11:02
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
显示用户
搜索手机号:
表格分页显示后台代码
@RequestMapping(value="/ShowAllUser.action",method = RequestMethod.GET)
@ResponseBody
public PageResult> ShowAllUser(@RequestParam(value = "page") int page , int limit) {
List users = userService.selectAllUser(page,limit);
//返回的总记录数
int count=userService.findUserPageCount();
PageResult> listPageResult=new PageResult>("",users,0,count);
return listPageResult;
}
根据关键字查询的后台代码,因为是查询一条,所以把limit, page都弄为1
@RequestMapping(value="/selectUserByPhone.action",method = RequestMethod.GET)
@ResponseBody
public PageResult> selectUserByPhone(@RequestParam(value = "page") int page , int limit,String phone) {
System.out.println(phone);
List users = userService.selectUserByPhone(phone);
PageResult> listPageResult=new PageResult>("",users,0,1);
return listPageResult;
}
表格返回封装的实体类
package com.lzm.utils;
/**
* @author lzm
* @create 2019- 06- 05- 9:25
*/
public class PageResult {
private String msg;
//返回的数据
private T data;
private int code;
//总记录数
private int count;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public PageResult(String msg, T data, int code, int count) {
this.msg = msg;
this.data = data;
this.code = code;
this.count = count;
}
}
上传图片的工具类
package com.lzm.controller;
import com.lzm.pojo.ImgResult;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
* @author lzm
* @create 2019- 07- 11- 23:19
*/
@Controller
public class UploadController {
// 上传图片
@RequestMapping(value = "/picture/upload.action",method = RequestMethod.POST)
@ResponseBody
public Map fileupload(@RequestParam("file") MultipartFile file) throws IOException {
Map map = new HashMap<>();
map.put("code", 1);
if (file != null && file.getOriginalFilename() != null && file.getOriginalFilename().length() > 0) {
String filepath="D:\\upload\\";
//服务器上路径
// String filepath="/upload/";
String originalFilename = file.getOriginalFilename();
//扩展名
String extendName = originalFilename.substring(originalFilename.indexOf("."));
String newfilename = UUID.randomUUID().toString() + extendName;
File uploadfile = new File(filepath + newfilename);
file.transferTo(uploadfile);
map.put("data", newfilename);
map.put("code", 0);
}
return map;
}
//多图片上传
@SuppressWarnings("deprecation")
@RequestMapping("/MultipleUpload.action")
@ResponseBody
public ImgResult uplpad(MultipartFile file, HttpServletRequest request) {
String desFilePath = "";
String oriName = "";
ImgResult result = new ImgResult();
Map dataMap = new HashMap<>();
ImgResult imgResult = new ImgResult();
try {
// 1.获取原文件名
oriName = file.getOriginalFilename();
// 2.获取原文件图片后缀,以最后的.作为截取(.jpg)
String extName = oriName.substring(oriName.lastIndexOf("."));
// 3.生成自定义的新文件名,这里以UUID.jpg|png|xxx作为格式(可选操作,也可以不自定义新文件名)
String uuid = UUID.randomUUID().toString();
String newName = uuid + extName;
// 4.获取要保存的路径文件夹
String realPath="D:\\upload\\";
// String realPath="/upload/";
// 5.保存
desFilePath = realPath + "\\" + newName;
File desFile = new File(desFilePath);
file.transferTo(desFile);
System.out.println(desFilePath);
// 6.返回保存结果信息
result.setCode(0);
dataMap = new HashMap<>();
dataMap.put("src", newName);
result.setData(dataMap);
result.setMsg(oriName + "上传成功!");
return result;
} catch (IllegalStateException e) {
imgResult.setCode(1);
System.out.println(desFilePath + "图片保存失败");
return imgResult;
} catch (IOException e) {
imgResult.setCode(1);
System.out.println(desFilePath + "图片保存失败--IO异常");
return imgResult;
}
}
}
上传图片返回的实体类,通过图片上传将图片存在硬盘中的位置,并返回图片的文件名,并赋值给文本域,最后提交,提交到数据库的是图片的文件名
package com.lzm.pojo;
import java.util.Map;
/**
* 图片上传建议返回格式 ,当然可以不这么定义
* {
* code": 0 ,
* msg": "" ,
* data": { "
* src":"http://cdn.layui.com/123.jpg" } }
*
* @author liuxuquan
* @des 根据需要返回的数据格式产生的pojo
*
*/
public class ImgResult {
//0 表示成功 1表示失败
private Integer code;
//信息
private String msg;
//url
private Map data;
private Integer totalCount=0;
private Integer successCount=0;
private Integer failCount=0;
public ImgResult() {
}
public ImgResult(Integer code, String msg, Map data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Map getData() {
return data;
}
public void setData(Map data) {
this.data = data;
}
public Integer getTotalCount() {
return totalCount;
}
public void setTotalCount(Integer totalCount) {
this.totalCount = totalCount;
}
public Integer getSuccessCount() {
return successCount;
}
public void setSuccessCount(Integer successCount) {
this.successCount = successCount;
}
public Integer getFailCount() {
return failCount;
}
public void setFailCount(Integer failCount) {
this.failCount = failCount;
}
}
增加用户的前端,主要的就是上传图片后返回图片名
<%--
Created by IntelliJ IDEA.
User: 廖泽铭
Date: 2019/7/23
Time: 10:02
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
增加用户