• Java项目:快递取件管理系统(java+SSM+JSP+jQuery+Mysql)


    源码获取:俺的博客首页 "资源" 里下载!

    项目介绍

    车险理赔管理系统源码,分为两个角色,一个管理员,一个普通用户
    主要功能说明:
    管理员角色包含以下功能:管理员登录,个人资料修改,用户管理,公告管理,快递状态管理,快递品牌管理,快递管理等功能。
    用户角色包含以下功能:
    用户注册后登录,个人资料管理,公告查看,查看本人的快递等功能。

    环境需要

    1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
    2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
    3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
    4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
    5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
    6.数据库:MySql 5.7等版本均可;


    技术栈

    1. 后端:Spring springmvc mybatis
    2. 前端:JSP+css+javascript+jQuery


    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
    2.使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
    若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat

     

     

     

     

     

    用户管理控制层: 

    1. @Controller
    2. @RequestMapping(value = "User")
    3. public class UserController {
    4. @Autowired
    5. private UserMapper userMapper;
    6. @RequestMapping(value = "/login.do")
    7. public String login(HttpServletRequest request, User util, Model model) {
    8. HttpSession session = request.getSession();
    9. String code = (String) session.getAttribute("code");
    10. String userCode = request.getParameter("code");
    11. if (!code.equals(userCode)) {
    12. model.addAttribute("errMsg", "验证码错误");
    13. return "../login";
    14. }
    15. User user = userMapper.getObjectByName(util);
    16. if (null == user) {
    17. model.addAttribute("errMsg", "登录失败");
    18. return "../login";
    19. }
    20. boolean flag = user.getS_1().equals(util.getS_1());
    21. if (!flag) {
    22. model.addAttribute("errMsg", "登录失败");
    23. return "../login";
    24. }
    25. session.setAttribute("user_id", user.getId());
    26. session.setAttribute("user_type", user.getS_11());
    27. session.setAttribute("type1", "admin");
    28. session.setAttribute("type2", "admin");
    29. session.setAttribute("name", user.getS_2());
    30. session.setAttribute("username", user.getS_0());
    31. return "../index";
    32. }
    33. @RequestMapping(value = "/updatepwd.do")
    34. public String updatepwd(HttpServletRequest request, User util, Model model) {
    35. HttpSession session = request.getSession();
    36. int user_id = (Integer) session.getAttribute("user_id");
    37. User userTmp = userMapper.getById(user_id);
    38. String oldPwd = util.getS_3();
    39. String newPwd = util.getS_4();
    40. String rePwd = util.getS_5();
    41. if (null == oldPwd || "".equals(oldPwd) || null == newPwd
    42. || "".equals(newPwd) || null == rePwd || "".equals(rePwd)) {
    43. model.addAttribute("errMsg", "密码信息不能为空");
    44. model.addAttribute("util", userTmp);
    45. return "User/updatepwd";
    46. }
    47. if (!newPwd.equals(rePwd)) {
    48. model.addAttribute("errMsg", "确认密码不一致");
    49. model.addAttribute("util", userTmp);
    50. return "User/updatepwd";
    51. }
    52. if (newPwd.equals(oldPwd)) {
    53. model.addAttribute("errMsg", "旧密码不能与新密码一致");
    54. model.addAttribute("util", userTmp);
    55. return "User/updatepwd";
    56. }
    57. if (!oldPwd.equals(userTmp.getS_1())) {
    58. model.addAttribute("errMsg", "旧密码错误");
    59. model.addAttribute("util", userTmp);
    60. return "User/updatepwd";
    61. }
    62. userTmp.setS_1(newPwd);
    63. userMapper.update(userTmp);
    64. return "User/uppwdok";
    65. }
    66. @RequestMapping(value = "/updateinfo.do")
    67. public String updateinfo(HttpServletRequest request, User util, Model model) {
    68. userMapper.update(util);
    69. model.addAttribute("util", util);
    70. model.addAttribute("errMsg", "个人信息修改成功");
    71. return "User/updateinfo";
    72. }
    73. @RequestMapping(value = "/beforepass.do")
    74. public String beforepass(HttpServletRequest request, User util, Model model) {
    75. HttpSession session = request.getSession();
    76. int user_id = (Integer) session.getAttribute("user_id");
    77. util = userMapper.getById(user_id);
    78. model.addAttribute("util", util);
    79. return "User/updatepwd";
    80. }
    81. @RequestMapping(value = "/beforeinfo.do")
    82. public String beforeinfo(HttpServletRequest request, User util, Model model) {
    83. HttpSession session = request.getSession();
    84. int user_id = (Integer) session.getAttribute("user_id");
    85. util = userMapper.getById(user_id);
    86. model.addAttribute("util", util);
    87. return "User/updateinfo";
    88. }
    89. @RequestMapping(value = "/register.do")
    90. public String register(HttpServletRequest request, User util, Model model) {
    91. HttpSession session = request.getSession();
    92. String code = (String) session.getAttribute("code");
    93. String userCode = request.getParameter("code");
    94. if (!code.equals(userCode)) {
    95. model.addAttribute("errMsg", "验证码错误");
    96. return "../register";
    97. }
    98. User user = userMapper.getObjectByName(util);
    99. if (null != user) {
    100. model.addAttribute("errMsg", "该用户名已经存在");
    101. return "../register";
    102. }
    103. userMapper.insert(util);
    104. model.addAttribute("registerMsg", "恭喜您,注册成功!");
    105. return "../login";
    106. }
    107. @RequestMapping(value = "/initPage.do")
    108. public String initPage(HttpServletRequest request, Model model) {
    109. return "User/saveOrUpdate";
    110. }
    111. @RequestMapping(value = "/selectList.do")
    112. public String selectList(HttpServletRequest request, User util, Model model) {
    113. util = userMapper.getById(util.getId());
    114. model.addAttribute("util", util);
    115. return "User/saveOrUpdate";
    116. }
    117. @SuppressWarnings({ "rawtypes", "unchecked" })
    118. @RequestMapping(value = "/getAllDataInPage.do")
    119. public String getAllDataInPage(HttpServletRequest request, User util, Model model) {
    120. String field = request.getParameter("field");
    121. String fieldValue = request.getParameter("fieldValue");
    122. String pageNo = request.getParameter("pageModel.currentPageNo");
    123. int currentPageNo = 1;
    124. try {
    125. fieldValue = new String(fieldValue.getBytes("UTF-8"), "UTF-8");
    126. currentPageNo = Integer.parseInt(pageNo);
    127. } catch (Exception e) {
    128. }
    129. List list = userMapper.getList(field, fieldValue);
    130. PageModel pageModel = new PageModel();
    131. pageModel = pageModel.getUtilByController(list, currentPageNo);
    132. model.addAttribute("pageModel", pageModel);
    133. model.addAttribute("fieldValue", fieldValue);
    134. model.addAttribute("field", field);
    135. return "User/find";
    136. }
    137. @RequestMapping(value = "/deleteManyDataByIds.do")
    138. public String deleteManyDataByIds(HttpServletRequest request, User util,
    139. Model model) {
    140. String ids[] = request.getParameterValues("id");
    141. for (String id : ids) {
    142. util = new User();
    143. util.setId(Integer.parseInt(id));
    144. try {
    145. userMapper.deleteById(util.getId());
    146. } catch (Exception e) {
    147. }
    148. }
    149. return this.getAllDataInPage(request, util, model);
    150. }
    151. @RequestMapping(value = "/deleteUtil.do")
    152. public String deleteUtil(HttpServletRequest request, User util, Model model) {
    153. try {
    154. userMapper.deleteById(util.getId());
    155. } catch (Exception e) {
    156. }
    157. return this.getAllDataInPage(request, util, model);
    158. }
    159. @RequestMapping(value = "/saveOrupdate.do")
    160. public String saveOrupdate(HttpServletRequest request, User util,
    161. Model model) {
    162. List list = userMapper.getList("s_0", util.getS_0());
    163. if (0 == util.getId()) {
    164. if (list.size() > 0) {
    165. model.addAttribute("util", util);
    166. model.addAttribute("errMsg", "该信息已存在!");
    167. return "User/saveOrUpdate";
    168. }
    169. userMapper.insert(util);
    170. } else {
    171. if (list.size() > 1) {
    172. model.addAttribute("util", util);
    173. model.addAttribute("errMsg", "该信息已存在!");
    174. return "User/saveOrUpdate";
    175. }
    176. userMapper.update(util);
    177. }
    178. return this.getAllDataInPage(request, util, model);
    179. }
    180. @RequestMapping(value = "/upload.do")
    181. public String upload(@RequestParam MultipartFile[] myfiles,
    182. HttpServletRequest request, User util, Model model)
    183. throws IOException {
    184. for (MultipartFile file : myfiles) {
    185. if (!file.isEmpty()) {
    186. String fileName = file.getOriginalFilename();
    187. String path = request.getSession().getServletContext()
    188. .getRealPath("image")
    189. + File.separator;
    190. String uploadName = new SimpleDateFormat("yyyyMMddHHmmss")
    191. .format(new Date()) + fileName;
    192. File localFile = new File(path + uploadName);
    193. file.transferTo(localFile);
    194. util.setS_0(uploadName);
    195. util.setS_1(fileName);
    196. util.setS_2(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
    197. .format(new Date()));
    198. }
    199. if (0 == util.getId()) {
    200. userMapper.insert(util);
    201. } else {
    202. userMapper.update(util);
    203. }
    204. return this.getAllDataInPage(request, util, model);
    205. }
    206. return this.getAllDataInPage(request, util, model);
    207. }
    208. }

    快递管理控制层:

    1. /**
    2. * function:MVC的C层,也就是控制层,这个Controller类可以实现对KuaidiManage这个类的控制,接收浏览器发送的请求并处理。KuaidiManage类的具体介绍,在com.edu.model.KuaidiManage类下,本处不在赘述
    3. * 本文件和SSM结构的关系:SSM结构的架构就是JSP(浏览器)发送请求,然后请求到对应的Controller,然后Controller调用Service,Service调用Mapper,mapper调用数据库实现增删改查,最后由Controller返回到JSP完成全过程。
    4. * 本文件对应Controller,负责表KuaidiManage
    5. * 箭头结构:JSP->[Controller]->Service->Mapper->数据库-->JSP
    6. * MVC层级划分:本文件在MVC模式中的C层,即控制层
    7. */
    8. @Controller//说明这个文件是MVC三层架构的Controller,加了这个注解之后,spring可以自动扫描到这个类,可以自动对类进行配置,这里也体现使用了spring框架
    9. @RequestMapping(value = "KuaidiManage")//定义请求的路径,路径为KuaidiManage,定义之后,浏览器获取数据就根据这个路径来进行访问,其他的同理,只要有@RequestMapping注解的都是这样
    10. public class KuaidiManageController {//Controller包含在名字中是一种规范
    11. @Autowired//自动注入,Spring的注解,这样的话,程序就可以自动把这个类扫进来,不需要手动创建对象
    12. private KuaidiManageService kuaidiManageService;//调用数据库mapper,mybatis框架的内容,可以实现增删改查
    13. @Autowired//自动注入,Spring的注解,这样的话,程序就可以自动把这个类扫进来,不需要手动创建对象
    14. private UserService userService;//调用数据库mapper,mybatis框架的内容,可以实现增删改查
    15. @Autowired//自动注入,Spring的注解,这样的话,程序就可以自动把这个类扫进来,不需要手动创建对象
    16. private PingpaiService pingpaiService;//调用数据库mapper,mybatis框架的内容,可以实现增删改查
    17. @Autowired//自动注入,Spring的注解,这样的话,程序就可以自动把这个类扫进来,不需要手动创建对象
    18. private KuaidiStatusService kuaidiStatusService;//调用数据库mapper,mybatis框架的内容,可以实现增删改查
    19. @RequestMapping(value = "/initPage.do")//设置添加跳转的页面
    20. public String initPage(HttpServletRequest request, Model model) {//在点击添加的时候加载一些预置代码
    21. List<User> listUser = userService.getList(null, null);
    22. model.addAttribute("listUser", listUser);
    23. List<Pingpai> listPingpai = pingpaiService.getList(null, null);
    24. model.addAttribute("listPingpai", listPingpai);
    25. List<KuaidiStatus> listKuaidiStatus = kuaidiStatusService.getList(null, null);
    26. model.addAttribute("listKuaidiStatus", listKuaidiStatus);
    27. return "KuaidiManage/saveOrUpdate";//跳转到编辑页面
    28. }
    29. @RequestMapping(value = "/selectList.do")
    30. public String selectList(HttpServletRequest request, KuaidiManage kuaidiManage, Model model) {//获取列表,最后跳转到列表查询页面,获取的是
    31. kuaidiManage = kuaidiManageService.getById(kuaidiManage.getId());//获取要更新的对象
    32. model.addAttribute("util", kuaidiManage);//传到前台
    33. List<User> listUser = userService.getList(null, null);
    34. model.addAttribute("listUser", listUser);
    35. List<Pingpai> listPingpai = pingpaiService.getList(null, null);
    36. model.addAttribute("listPingpai", listPingpai);
    37. List<KuaidiStatus> listKuaidiStatus = kuaidiStatusService.getList(null, null);
    38. model.addAttribute("listKuaidiStatus", listKuaidiStatus);
    39. return "KuaidiManage/saveOrUpdate";//跳转到编辑页面
    40. }
    41. @SuppressWarnings({ "rawtypes", "unchecked" })
    42. @RequestMapping(value = "/getAllDataInPage.do")//获取列表的数据
    43. public String getAllDataInPage(HttpServletRequest request, Model model) {
    44. String field = request.getParameter("field");
    45. String fieldValue = request.getParameter("fieldValue");//当前端有查询的时候,这里的fieldValue就不是空,否则是空
    46. try {
    47. fieldValue = new String(fieldValue.getBytes("UTF-8"), "UTF-8");//防止乱码
    48. } catch (Exception e) {}
    49. String pageNo = request.getParameter("pageModel.currentPageNo");//获取当前页码是多少
    50. int currentPageNo = 1;//设置初始化页码是1
    51. try{
    52. currentPageNo = Integer.parseInt(pageNo);//防止前端传的不是数字
    53. }catch(Exception e){
    54. }
    55. List<KuaidiManage> list = kuaidiManageService.getList(field, fieldValue);//获取列表数据
    56. List<KuaidiManage> listKuaidiManage = new ArrayList<KuaidiManage>();
    57. HttpSession session = request.getSession();
    58. int user_id = (Integer) session.getAttribute("user_id");
    59. String user_type = (String) session.getAttribute("user_type");
    60. for (KuaidiManage temp : list) {
    61. if (user_id == temp.getUser().getId()) {
    62. listKuaidiManage.add(temp);
    63. }
    64. }
    65. if (!"admin".equals(user_type)) {
    66. //list = listKuaidiManage;
    67. }
    68. PageModel pageModel = new PageModel();
    69. pageModel = pageModel.getUtilByController(list, currentPageNo);
    70. model.addAttribute("pageModel", pageModel);//查询后,把查询的条件类型回显到jsp中
    71. model.addAttribute("fieldValue", fieldValue);//查询后,把查询的关键字回显到jsp中
    72. model.addAttribute("field", field);
    73. return "KuaidiManage/find";//跳转到find.jsp页面,也就是列表页面,KuaidiManage文件夹下面
    74. }
    75. @RequestMapping(value = "/deleteUtil.do")
    76. public String deleteUtil(HttpServletRequest request, KuaidiManage kuaidiManage, Model model) {//删除的代码
    77. try{
    78. kuaidiManageService.deleteById(kuaidiManage.getId());//根据ID删除
    79. }catch(Exception e){
    80. }
    81. return this.getAllDataInPage(request, model);//返回到列表页面,对应admin文件夹下的KuaidiManage文件夹下的find.jsp
    82. }
    83. @RequestMapping(value = "/deleteManyDataByIds.do")//批量删除
    84. public String deleteManyDataByIds(HttpServletRequest request, User user,Model model) {
    85. String ids[] = request.getParameterValues("id"); //获取ID的列表
    86. for (String id : ids) {//考虑可能传多个id
    87. user = new User();
    88. user.setId(Integer.parseInt(id));
    89. try{
    90. kuaidiManageService.deleteById(user.getId());//删除的核心代码
    91. }catch(Exception e){}
    92. }
    93. return this.getAllDataInPage(request, model);
    94. }
    95. @RequestMapping(value = "/saveOrupdate.do")//这里是编辑或者添加的具体代码
    96. public String saveOrupdate(HttpServletRequest request, KuaidiManage util, Model model) {
    97. List<KuaidiManage> list = kuaidiManageService.getList("fahuo", util.getFahuo());
    98. List<User> listUser = userService.getList(null, null);
    99. model.addAttribute("listUser", listUser);
    100. List<Pingpai> listPingpai = pingpaiService.getList(null, null);
    101. model.addAttribute("listPingpai", listPingpai);
    102. List<KuaidiStatus> listKuaidiStatus = kuaidiStatusService.getList(null, null);
    103. model.addAttribute("listKuaidiStatus", listKuaidiStatus);
    104. if (0 == util.getId()) {
    105. if (list.size() > 0) {
    106. model.addAttribute("util", util);
    107. model.addAttribute("errMsg", "该信息已存在!");
    108. return "KuaidiManage/saveOrUpdate";
    109. }
    110. kuaidiManageService.insert(util);
    111. } else {
    112. if (list.size() > 1) {
    113. model.addAttribute("util", util);
    114. model.addAttribute("errMsg", "该信息已存在!");
    115. return "KuaidiManage/saveOrUpdate";
    116. }
    117. kuaidiManageService.update(util);
    118. }
    119. return this.getAllDataInPage(request, model);
    120. }
    121. @RequestMapping(value = "/export.do")
    122. public void export(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {//获取列表,最后跳转到列表查询页面,获取的是
    123. Map<String, Object> row2 = new LinkedHashMap<String, Object>();
    124. Map<String, Object> row = new LinkedHashMap<String, Object>();
    125. String field = request.getParameter("field");
    126. String fieldValue = request.getParameter("fieldValue");//当前端有查询的时候,这里的fieldValue就不是空,否则是空
    127. try {
    128. fieldValue = new String(fieldValue.getBytes("UTF-8"), "UTF-8");//防止乱码
    129. } catch (Exception e) {}
    130. List<KuaidiManage> list = kuaidiManageService.getList(field, fieldValue);//获取列表数据
    131. Class p= KuaidiManage.class;
    132. Field[] fields = p.getDeclaredFields();
    133. for(KuaidiManage kuaidiManage:list) {
    134. for (int j = 0; j < fields.length; j++) {
    135. System.out.println(fields[j].getName().toLowerCase());
    136. Field declaredField = p.getDeclaredField(fields[j].getName());
    137. declaredField.setAccessible(true);
    138. // Tip tip = declaredField.getAnnotation(Tip.class);
    139. //System.out.println(annotation.age()+":"+annotation.name());
    140. String name = declaredField.getAnnotation(Tip.class).value();
    141. if(name == null){
    142. continue;
    143. }
    144. if(declaredField.getType().toString().equals("class java.lang.String")){
    145. row2.put(name, declaredField.get(kuaidiManage));
    146. }else if(declaredField.getType().toString().equals("int")){
    147. row2.put(name, declaredField.get(kuaidiManage));
    148. }
    149. if(declaredField.getType().toString().equals("class com.edu.model.User")){
    150. row2.put(name, ((User)declaredField.get(kuaidiManage)).getS_0());
    151. }
    152. if(declaredField.getType().toString().equals("class com.edu.model.Pingpai")){
    153. row2.put(name, ((Pingpai)declaredField.get(kuaidiManage)).getName());
    154. }
    155. if(declaredField.getType().toString().equals("class com.edu.model.KuaidiStatus")){
    156. row2.put(name, ((KuaidiStatus)declaredField.get(kuaidiManage)).getName());
    157. }
    158. }
    159. row.putAll(row2);
    160. row2 = new LinkedHashMap<String, Object>();
    161. }
    162. String fileName = Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(0,Thread.currentThread().getContextClassLoader().getResource("").getPath().length()-16)
    163. +"/upload/"+UUID.randomUUID().toString()+".xls";
    164. ArrayList<Map<String, Object>> rows = CollUtil.newArrayList(row);
    165. ExcelWriter writer = null;
    166. try {
    167. writer = ExcelUtil.getWriter(fileName);
    168. } catch (Exception e){
    169. }
    170. try {
    171. // 一次性写出内容,使用默认样式,强制输出标题
    172. writer.write(rows, true);
    173. } catch (Exception e){
    174. }
    175. try {
    176. // 关闭writer,释放内存
    177. writer.close();//其实不写这句在功能上也可以,但是为了规范,最好写上
    178. } catch (Exception e){
    179. }
    180. //转码,免得文件名中文乱码
    181. // fileName = URLEncoder.encode(fileName,"UTF-8");
    182. //设置文件下载头
    183. response.addHeader("Content-Disposition", "attachment;filename=" + UUID.randomUUID().toString()+".xls");
    184. //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
    185. response.setContentType("multipart/form-data");
    186. BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
    187. int len = 0;
    188. InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileName)));
    189. while((len = bis.read()) != -1){
    190. out.write(len);
    191. out.flush();
    192. }
    193. out.close();
    194. }
    195. }

    快递状态管理控制层: 

    1. /**
    2. * function:MVC的C层,也就是控制层,这个Controller类可以实现对KuaidiStatus这个类的控制,接收浏览器发送的请求并处理。KuaidiStatus类的具体介绍,在com.edu.model.KuaidiStatus类下,本处不在赘述
    3. * 本文件和SSM结构的关系:SSM结构的架构就是JSP(浏览器)发送请求,然后请求到对应的Controller,然后Controller调用Service,Service调用Mapper,mapper调用数据库实现增删改查,最后由Controller返回到JSP完成全过程。
    4. * 本文件对应Controller,负责表KuaidiStatus
    5. * 箭头结构:JSP->[Controller]->Service->Mapper->数据库-->JSP
    6. * MVC层级划分:本文件在MVC模式中的C层,即控制层
    7. */
    8. @Controller//说明这个文件是MVC三层架构的Controller,加了这个注解之后,spring可以自动扫描到这个类,可以自动对类进行配置,这里也体现使用了spring框架
    9. @RequestMapping(value = "KuaidiStatus")//定义请求的路径,路径为KuaidiStatus,定义之后,浏览器获取数据就根据这个路径来进行访问,其他的同理,只要有@RequestMapping注解的都是这样
    10. public class KuaidiStatusController {//Controller包含在名字中是一种规范
    11. @Autowired//自动注入,Spring的注解,这样的话,程序就可以自动把这个类扫进来,不需要手动创建对象
    12. private KuaidiStatusService kuaidiStatusService;//调用数据库mapper,mybatis框架的内容,可以实现增删改查
    13. @RequestMapping(value = "/initPage.do")//设置添加跳转的页面
    14. public String initPage(HttpServletRequest request, Model model) {//在点击添加的时候加载一些预置代码
    15. return "KuaidiStatus/saveOrUpdate";//跳转到编辑页面
    16. }
    17. @RequestMapping(value = "/selectList.do")
    18. public String selectList(HttpServletRequest request, KuaidiStatus kuaidiStatus, Model model) {//获取列表,最后跳转到列表查询页面,获取的是
    19. kuaidiStatus = kuaidiStatusService.getById(kuaidiStatus.getId());//获取要更新的对象
    20. model.addAttribute("util", kuaidiStatus);//传到前台
    21. return "KuaidiStatus/saveOrUpdate";//跳转到编辑页面
    22. }
    23. @SuppressWarnings({ "rawtypes", "unchecked" })
    24. @RequestMapping(value = "/getAllDataInPage.do")//获取列表的数据
    25. public String getAllDataInPage(HttpServletRequest request, Model model) {
    26. String field = request.getParameter("field");
    27. String fieldValue = request.getParameter("fieldValue");//当前端有查询的时候,这里的fieldValue就不是空,否则是空
    28. try {
    29. fieldValue = new String(fieldValue.getBytes("UTF-8"), "UTF-8");//防止乱码
    30. } catch (Exception e) {}
    31. String pageNo = request.getParameter("pageModel.currentPageNo");//获取当前页码是多少
    32. int currentPageNo = 1;//设置初始化页码是1
    33. try{
    34. currentPageNo = Integer.parseInt(pageNo);//防止前端传的不是数字
    35. }catch(Exception e){
    36. }
    37. List<KuaidiStatus> list = kuaidiStatusService.getList(field, fieldValue);//获取列表数据
    38. PageModel pageModel = new PageModel();
    39. pageModel = pageModel.getUtilByController(list, currentPageNo);
    40. model.addAttribute("pageModel", pageModel);//查询后,把查询的条件类型回显到jsp中
    41. model.addAttribute("fieldValue", fieldValue);//查询后,把查询的关键字回显到jsp中
    42. model.addAttribute("field", field);
    43. return "KuaidiStatus/find";//跳转到find.jsp页面,也就是列表页面,KuaidiStatus文件夹下面
    44. }
    45. @RequestMapping(value = "/deleteUtil.do")
    46. public String deleteUtil(HttpServletRequest request, KuaidiStatus kuaidiStatus, Model model) {//删除的代码
    47. try{
    48. kuaidiStatusService.deleteById(kuaidiStatus.getId());//根据ID删除
    49. }catch(Exception e){
    50. }
    51. return this.getAllDataInPage(request, model);//返回到列表页面,对应admin文件夹下的KuaidiStatus文件夹下的find.jsp
    52. }
    53. @RequestMapping(value = "/deleteManyDataByIds.do")//批量删除
    54. public String deleteManyDataByIds(HttpServletRequest request, User user,Model model) {
    55. String ids[] = request.getParameterValues("id"); //获取ID的列表
    56. for (String id : ids) {//考虑可能传多个id
    57. user = new User();
    58. user.setId(Integer.parseInt(id));
    59. try{
    60. kuaidiStatusService.deleteById(user.getId());//删除的核心代码
    61. }catch(Exception e){}
    62. }
    63. return this.getAllDataInPage(request, model);
    64. }
    65. @RequestMapping(value = "/saveOrupdate.do")//这里是编辑或者添加的具体代码
    66. public String saveOrupdate(HttpServletRequest request, KuaidiStatus util, Model model) {
    67. List<KuaidiStatus> list = kuaidiStatusService.getList("name", util.getName());
    68. if (0 == util.getId()) {
    69. if (list.size() > 0) {
    70. model.addAttribute("util", util);
    71. model.addAttribute("errMsg", "该信息已存在!");
    72. return "KuaidiStatus/saveOrUpdate";
    73. }
    74. kuaidiStatusService.insert(util);
    75. } else {
    76. if (list.size() > 1) {
    77. model.addAttribute("util", util);
    78. model.addAttribute("errMsg", "该信息已存在!");
    79. return "KuaidiStatus/saveOrUpdate";
    80. }
    81. kuaidiStatusService.update(util);
    82. }
    83. return this.getAllDataInPage(request, model);
    84. }
    85. @RequestMapping(value = "/export.do")
    86. public void export(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {//获取列表,最后跳转到列表查询页面,获取的是
    87. Map<String, Object> row2 = new LinkedHashMap<String, Object>();
    88. Map<String, Object> row = new LinkedHashMap<String, Object>();
    89. String field = request.getParameter("field");
    90. String fieldValue = request.getParameter("fieldValue");//当前端有查询的时候,这里的fieldValue就不是空,否则是空
    91. try {
    92. fieldValue = new String(fieldValue.getBytes("UTF-8"), "UTF-8");//防止乱码
    93. } catch (Exception e) {}
    94. List<KuaidiStatus> list = kuaidiStatusService.getList(field, fieldValue);//获取列表数据
    95. Class p= KuaidiStatus.class;
    96. Field[] fields = p.getDeclaredFields();
    97. for(KuaidiStatus kuaidiStatus:list) {
    98. for (int j = 0; j < fields.length; j++) {
    99. System.out.println(fields[j].getName().toLowerCase());
    100. Field declaredField = p.getDeclaredField(fields[j].getName());
    101. declaredField.setAccessible(true);
    102. // Tip tip = declaredField.getAnnotation(Tip.class);
    103. //System.out.println(annotation.age()+":"+annotation.name());
    104. String name = declaredField.getAnnotation(Tip.class).value();
    105. if(name == null){
    106. continue;
    107. }
    108. if(declaredField.getType().toString().equals("class java.lang.String")){
    109. row2.put(name, declaredField.get(kuaidiStatus));
    110. }else if(declaredField.getType().toString().equals("int")){
    111. row2.put(name, declaredField.get(kuaidiStatus));
    112. }
    113. }
    114. row.putAll(row2);
    115. row2 = new LinkedHashMap<String, Object>();
    116. }
    117. String fileName = Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(0,Thread.currentThread().getContextClassLoader().getResource("").getPath().length()-16)
    118. +"/upload/"+UUID.randomUUID().toString()+".xls";
    119. ArrayList<Map<String, Object>> rows = CollUtil.newArrayList(row);
    120. ExcelWriter writer = null;
    121. try {
    122. writer = ExcelUtil.getWriter(fileName);
    123. } catch (Exception e){
    124. }
    125. try {
    126. // 一次性写出内容,使用默认样式,强制输出标题
    127. writer.write(rows, true);
    128. } catch (Exception e){
    129. }
    130. try {
    131. // 关闭writer,释放内存
    132. writer.close();//其实不写这句在功能上也可以,但是为了规范,最好写上
    133. } catch (Exception e){
    134. }
    135. //转码,免得文件名中文乱码
    136. // fileName = URLEncoder.encode(fileName,"UTF-8");
    137. //设置文件下载头
    138. response.addHeader("Content-Disposition", "attachment;filename=" + UUID.randomUUID().toString()+".xls");
    139. //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
    140. response.setContentType("multipart/form-data");
    141. BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
    142. int len = 0;
    143. InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileName)));
    144. while((len = bis.read()) != -1){
    145. out.write(len);
    146. out.flush();
    147. }
    148. out.close();
    149. }
    150. }

    源码获取:俺的博客首页 "资源" 里下载!

  • 相关阅读:
    linux用户空间向内核空间通信之使用proc接口和使用WARN_ON和BUG_ON调试内核代码
    SpringBoot之Spring核心AOP详解
    广义表常用表示
    web网页设计期末课程大作业:美食餐饮文化主题网站设计——HTML+CSS+JavaScript美食餐厅网站设计与实现 11页面
    shiro反序列化和log4j
    dc_shell的change_names命令,信号[]/_
    ClickHouse进阶(七):Clickhouse数据查询-1
    R语言——朴素贝叶斯文本分类
    Black Friday案例分析
    公司新来了个一年测试经验拿15K的,发现是个00后卷王····
  • 原文地址:https://blog.csdn.net/m0_66863468/article/details/125815104