源码获取:俺的博客首页 "资源" 里下载!
车险理赔管理系统源码,分为两个角色,一个管理员,一个普通用户
主要功能说明:
管理员角色包含以下功能:管理员登录,个人资料修改,用户管理,公告管理,快递状态管理,快递品牌管理,快递管理等功能。
用户角色包含以下功能:
用户注册后登录,个人资料管理,公告查看,查看本人的快递等功能。
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






- @Controller
- @RequestMapping(value = "User")
- public class UserController {
- @Autowired
- private UserMapper userMapper;
-
- @RequestMapping(value = "/login.do")
- public String login(HttpServletRequest request, User util, Model model) {
-
- HttpSession session = request.getSession();
- String code = (String) session.getAttribute("code");
- String userCode = request.getParameter("code");
-
- if (!code.equals(userCode)) {
- model.addAttribute("errMsg", "验证码错误");
- return "../login";
- }
- User user = userMapper.getObjectByName(util);
- if (null == user) {
- model.addAttribute("errMsg", "登录失败");
- return "../login";
- }
- boolean flag = user.getS_1().equals(util.getS_1());
- if (!flag) {
- model.addAttribute("errMsg", "登录失败");
- return "../login";
- }
-
- session.setAttribute("user_id", user.getId());
- session.setAttribute("user_type", user.getS_11());
- session.setAttribute("type1", "admin");
- session.setAttribute("type2", "admin");
- session.setAttribute("name", user.getS_2());
- session.setAttribute("username", user.getS_0());
- return "../index";
- }
-
- @RequestMapping(value = "/updatepwd.do")
- public String updatepwd(HttpServletRequest request, User util, Model model) {
-
- HttpSession session = request.getSession();
- int user_id = (Integer) session.getAttribute("user_id");
- User userTmp = userMapper.getById(user_id);
-
- String oldPwd = util.getS_3();
- String newPwd = util.getS_4();
- String rePwd = util.getS_5();
- if (null == oldPwd || "".equals(oldPwd) || null == newPwd
- || "".equals(newPwd) || null == rePwd || "".equals(rePwd)) {
- model.addAttribute("errMsg", "密码信息不能为空");
- model.addAttribute("util", userTmp);
- return "User/updatepwd";
- }
-
- if (!newPwd.equals(rePwd)) {
- model.addAttribute("errMsg", "确认密码不一致");
- model.addAttribute("util", userTmp);
- return "User/updatepwd";
- }
-
- if (newPwd.equals(oldPwd)) {
- model.addAttribute("errMsg", "旧密码不能与新密码一致");
- model.addAttribute("util", userTmp);
- return "User/updatepwd";
- }
-
- if (!oldPwd.equals(userTmp.getS_1())) {
- model.addAttribute("errMsg", "旧密码错误");
- model.addAttribute("util", userTmp);
- return "User/updatepwd";
- }
- userTmp.setS_1(newPwd);
- userMapper.update(userTmp);
- return "User/uppwdok";
- }
-
- @RequestMapping(value = "/updateinfo.do")
- public String updateinfo(HttpServletRequest request, User util, Model model) {
- userMapper.update(util);
- model.addAttribute("util", util);
- model.addAttribute("errMsg", "个人信息修改成功");
- return "User/updateinfo";
- }
-
- @RequestMapping(value = "/beforepass.do")
- public String beforepass(HttpServletRequest request, User util, Model model) {
- HttpSession session = request.getSession();
- int user_id = (Integer) session.getAttribute("user_id");
- util = userMapper.getById(user_id);
- model.addAttribute("util", util);
- return "User/updatepwd";
- }
-
- @RequestMapping(value = "/beforeinfo.do")
- public String beforeinfo(HttpServletRequest request, User util, Model model) {
- HttpSession session = request.getSession();
- int user_id = (Integer) session.getAttribute("user_id");
- util = userMapper.getById(user_id);
- model.addAttribute("util", util);
- return "User/updateinfo";
- }
-
- @RequestMapping(value = "/register.do")
- public String register(HttpServletRequest request, User util, Model model) {
- HttpSession session = request.getSession();
- String code = (String) session.getAttribute("code");
- String userCode = request.getParameter("code");
- if (!code.equals(userCode)) {
- model.addAttribute("errMsg", "验证码错误");
- return "../register";
- }
- User user = userMapper.getObjectByName(util);
- if (null != user) {
- model.addAttribute("errMsg", "该用户名已经存在");
- return "../register";
- }
- userMapper.insert(util);
- model.addAttribute("registerMsg", "恭喜您,注册成功!");
- return "../login";
- }
-
- @RequestMapping(value = "/initPage.do")
- public String initPage(HttpServletRequest request, Model model) {
- return "User/saveOrUpdate";
- }
-
- @RequestMapping(value = "/selectList.do")
- public String selectList(HttpServletRequest request, User util, Model model) {
- util = userMapper.getById(util.getId());
- model.addAttribute("util", util);
- return "User/saveOrUpdate";
- }
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @RequestMapping(value = "/getAllDataInPage.do")
- public String getAllDataInPage(HttpServletRequest request, User util, Model model) {
- String field = request.getParameter("field");
- String fieldValue = request.getParameter("fieldValue");
- String pageNo = request.getParameter("pageModel.currentPageNo");
- int currentPageNo = 1;
- try {
- fieldValue = new String(fieldValue.getBytes("UTF-8"), "UTF-8");
- currentPageNo = Integer.parseInt(pageNo);
- } catch (Exception e) {
- }
- List
list = userMapper.getList(field, fieldValue); - PageModel pageModel = new PageModel();
- pageModel = pageModel.getUtilByController(list, currentPageNo);
- model.addAttribute("pageModel", pageModel);
- model.addAttribute("fieldValue", fieldValue);
- model.addAttribute("field", field);
- return "User/find";
- }
-
- @RequestMapping(value = "/deleteManyDataByIds.do")
- public String deleteManyDataByIds(HttpServletRequest request, User util,
- Model model) {
- String ids[] = request.getParameterValues("id");
- for (String id : ids) {
- util = new User();
- util.setId(Integer.parseInt(id));
- try {
- userMapper.deleteById(util.getId());
- } catch (Exception e) {
- }
- }
- return this.getAllDataInPage(request, util, model);
- }
-
- @RequestMapping(value = "/deleteUtil.do")
- public String deleteUtil(HttpServletRequest request, User util, Model model) {
- try {
- userMapper.deleteById(util.getId());
- } catch (Exception e) {
- }
- return this.getAllDataInPage(request, util, model);
- }
-
- @RequestMapping(value = "/saveOrupdate.do")
- public String saveOrupdate(HttpServletRequest request, User util,
- Model model) {
- List
list = userMapper.getList("s_0", util.getS_0()); - if (0 == util.getId()) {
- if (list.size() > 0) {
- model.addAttribute("util", util);
- model.addAttribute("errMsg", "该信息已存在!");
- return "User/saveOrUpdate";
- }
- userMapper.insert(util);
- } else {
- if (list.size() > 1) {
- model.addAttribute("util", util);
- model.addAttribute("errMsg", "该信息已存在!");
- return "User/saveOrUpdate";
- }
- userMapper.update(util);
- }
- return this.getAllDataInPage(request, util, model);
- }
-
- @RequestMapping(value = "/upload.do")
- public String upload(@RequestParam MultipartFile[] myfiles,
- HttpServletRequest request, User util, Model model)
- throws IOException {
- for (MultipartFile file : myfiles) {
- if (!file.isEmpty()) {
- String fileName = file.getOriginalFilename();
- String path = request.getSession().getServletContext()
- .getRealPath("image")
- + File.separator;
- String uploadName = new SimpleDateFormat("yyyyMMddHHmmss")
- .format(new Date()) + fileName;
- File localFile = new File(path + uploadName);
- file.transferTo(localFile);
- util.setS_0(uploadName);
- util.setS_1(fileName);
- util.setS_2(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
- .format(new Date()));
- }
-
- if (0 == util.getId()) {
- userMapper.insert(util);
- } else {
- userMapper.update(util);
- }
- return this.getAllDataInPage(request, util, model);
- }
-
- return this.getAllDataInPage(request, util, model);
- }
- }
- /**
- * function:MVC的C层,也就是控制层,这个Controller类可以实现对KuaidiManage这个类的控制,接收浏览器发送的请求并处理。KuaidiManage类的具体介绍,在com.edu.model.KuaidiManage类下,本处不在赘述
- * 本文件和SSM结构的关系:SSM结构的架构就是JSP(浏览器)发送请求,然后请求到对应的Controller,然后Controller调用Service,Service调用Mapper,mapper调用数据库实现增删改查,最后由Controller返回到JSP完成全过程。
- * 本文件对应Controller,负责表KuaidiManage
- * 箭头结构:JSP->[Controller]->Service->Mapper->数据库-->JSP
- * MVC层级划分:本文件在MVC模式中的C层,即控制层
- */
- @Controller//说明这个文件是MVC三层架构的Controller,加了这个注解之后,spring可以自动扫描到这个类,可以自动对类进行配置,这里也体现使用了spring框架
- @RequestMapping(value = "KuaidiManage")//定义请求的路径,路径为KuaidiManage,定义之后,浏览器获取数据就根据这个路径来进行访问,其他的同理,只要有@RequestMapping注解的都是这样
- public class KuaidiManageController {//Controller包含在名字中是一种规范
- @Autowired//自动注入,Spring的注解,这样的话,程序就可以自动把这个类扫进来,不需要手动创建对象
- private KuaidiManageService kuaidiManageService;//调用数据库mapper,mybatis框架的内容,可以实现增删改查
- @Autowired//自动注入,Spring的注解,这样的话,程序就可以自动把这个类扫进来,不需要手动创建对象
- private UserService userService;//调用数据库mapper,mybatis框架的内容,可以实现增删改查
- @Autowired//自动注入,Spring的注解,这样的话,程序就可以自动把这个类扫进来,不需要手动创建对象
- private PingpaiService pingpaiService;//调用数据库mapper,mybatis框架的内容,可以实现增删改查
- @Autowired//自动注入,Spring的注解,这样的话,程序就可以自动把这个类扫进来,不需要手动创建对象
- private KuaidiStatusService kuaidiStatusService;//调用数据库mapper,mybatis框架的内容,可以实现增删改查
-
- @RequestMapping(value = "/initPage.do")//设置添加跳转的页面
- public String initPage(HttpServletRequest request, Model model) {//在点击添加的时候加载一些预置代码
- List<User> listUser = userService.getList(null, null);
- model.addAttribute("listUser", listUser);
- List<Pingpai> listPingpai = pingpaiService.getList(null, null);
- model.addAttribute("listPingpai", listPingpai);
- List<KuaidiStatus> listKuaidiStatus = kuaidiStatusService.getList(null, null);
- model.addAttribute("listKuaidiStatus", listKuaidiStatus);
- return "KuaidiManage/saveOrUpdate";//跳转到编辑页面
- }
-
- @RequestMapping(value = "/selectList.do")
- public String selectList(HttpServletRequest request, KuaidiManage kuaidiManage, Model model) {//获取列表,最后跳转到列表查询页面,获取的是
- kuaidiManage = kuaidiManageService.getById(kuaidiManage.getId());//获取要更新的对象
- model.addAttribute("util", kuaidiManage);//传到前台
- List<User> listUser = userService.getList(null, null);
- model.addAttribute("listUser", listUser);
- List<Pingpai> listPingpai = pingpaiService.getList(null, null);
- model.addAttribute("listPingpai", listPingpai);
- List<KuaidiStatus> listKuaidiStatus = kuaidiStatusService.getList(null, null);
- model.addAttribute("listKuaidiStatus", listKuaidiStatus);
- return "KuaidiManage/saveOrUpdate";//跳转到编辑页面
- }
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @RequestMapping(value = "/getAllDataInPage.do")//获取列表的数据
- public String getAllDataInPage(HttpServletRequest request, Model model) {
- String field = request.getParameter("field");
- String fieldValue = request.getParameter("fieldValue");//当前端有查询的时候,这里的fieldValue就不是空,否则是空
- try {
- fieldValue = new String(fieldValue.getBytes("UTF-8"), "UTF-8");//防止乱码
- } catch (Exception e) {}
- String pageNo = request.getParameter("pageModel.currentPageNo");//获取当前页码是多少
- int currentPageNo = 1;//设置初始化页码是1
- try{
- currentPageNo = Integer.parseInt(pageNo);//防止前端传的不是数字
- }catch(Exception e){
- }
- List<KuaidiManage> list = kuaidiManageService.getList(field, fieldValue);//获取列表数据
- List<KuaidiManage> listKuaidiManage = new ArrayList<KuaidiManage>();
- HttpSession session = request.getSession();
- int user_id = (Integer) session.getAttribute("user_id");
- String user_type = (String) session.getAttribute("user_type");
- for (KuaidiManage temp : list) {
- if (user_id == temp.getUser().getId()) {
- listKuaidiManage.add(temp);
- }
- }
- if (!"admin".equals(user_type)) {
- //list = listKuaidiManage;
- }
-
- PageModel pageModel = new PageModel();
- pageModel = pageModel.getUtilByController(list, currentPageNo);
- model.addAttribute("pageModel", pageModel);//查询后,把查询的条件类型回显到jsp中
- model.addAttribute("fieldValue", fieldValue);//查询后,把查询的关键字回显到jsp中
- model.addAttribute("field", field);
- return "KuaidiManage/find";//跳转到find.jsp页面,也就是列表页面,KuaidiManage文件夹下面
- }
-
- @RequestMapping(value = "/deleteUtil.do")
- public String deleteUtil(HttpServletRequest request, KuaidiManage kuaidiManage, Model model) {//删除的代码
- try{
- kuaidiManageService.deleteById(kuaidiManage.getId());//根据ID删除
- }catch(Exception e){
- }
- return this.getAllDataInPage(request, model);//返回到列表页面,对应admin文件夹下的KuaidiManage文件夹下的find.jsp
- }
-
- @RequestMapping(value = "/deleteManyDataByIds.do")//批量删除
- public String deleteManyDataByIds(HttpServletRequest request, User user,Model model) {
- String ids[] = request.getParameterValues("id"); //获取ID的列表
- for (String id : ids) {//考虑可能传多个id
- user = new User();
- user.setId(Integer.parseInt(id));
- try{
- kuaidiManageService.deleteById(user.getId());//删除的核心代码
- }catch(Exception e){}
- }
- return this.getAllDataInPage(request, model);
- }
-
- @RequestMapping(value = "/saveOrupdate.do")//这里是编辑或者添加的具体代码
- public String saveOrupdate(HttpServletRequest request, KuaidiManage util, Model model) {
- List<KuaidiManage> list = kuaidiManageService.getList("fahuo", util.getFahuo());
- List<User> listUser = userService.getList(null, null);
- model.addAttribute("listUser", listUser);
- List<Pingpai> listPingpai = pingpaiService.getList(null, null);
- model.addAttribute("listPingpai", listPingpai);
- List<KuaidiStatus> listKuaidiStatus = kuaidiStatusService.getList(null, null);
- model.addAttribute("listKuaidiStatus", listKuaidiStatus);
- if (0 == util.getId()) {
- if (list.size() > 0) {
- model.addAttribute("util", util);
- model.addAttribute("errMsg", "该信息已存在!");
- return "KuaidiManage/saveOrUpdate";
- }
- kuaidiManageService.insert(util);
- } else {
- if (list.size() > 1) {
- model.addAttribute("util", util);
- model.addAttribute("errMsg", "该信息已存在!");
- return "KuaidiManage/saveOrUpdate";
- }
- kuaidiManageService.update(util);
- }
- return this.getAllDataInPage(request, model);
- }
-
- @RequestMapping(value = "/export.do")
- public void export(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {//获取列表,最后跳转到列表查询页面,获取的是
- Map<String, Object> row2 = new LinkedHashMap<String, Object>();
- Map<String, Object> row = new LinkedHashMap<String, Object>();
- String field = request.getParameter("field");
- String fieldValue = request.getParameter("fieldValue");//当前端有查询的时候,这里的fieldValue就不是空,否则是空
- try {
- fieldValue = new String(fieldValue.getBytes("UTF-8"), "UTF-8");//防止乱码
- } catch (Exception e) {}
- List<KuaidiManage> list = kuaidiManageService.getList(field, fieldValue);//获取列表数据
- Class p= KuaidiManage.class;
- Field[] fields = p.getDeclaredFields();
- for(KuaidiManage kuaidiManage:list) {
- for (int j = 0; j < fields.length; j++) {
- System.out.println(fields[j].getName().toLowerCase());
- Field declaredField = p.getDeclaredField(fields[j].getName());
- declaredField.setAccessible(true);
- // Tip tip = declaredField.getAnnotation(Tip.class);
- //System.out.println(annotation.age()+":"+annotation.name());
- String name = declaredField.getAnnotation(Tip.class).value();
- if(name == null){
- continue;
- }
- if(declaredField.getType().toString().equals("class java.lang.String")){
- row2.put(name, declaredField.get(kuaidiManage));
-
- }else if(declaredField.getType().toString().equals("int")){
- row2.put(name, declaredField.get(kuaidiManage));
- }
- if(declaredField.getType().toString().equals("class com.edu.model.User")){
- row2.put(name, ((User)declaredField.get(kuaidiManage)).getS_0());
- }
- if(declaredField.getType().toString().equals("class com.edu.model.Pingpai")){
- row2.put(name, ((Pingpai)declaredField.get(kuaidiManage)).getName());
- }
- if(declaredField.getType().toString().equals("class com.edu.model.KuaidiStatus")){
- row2.put(name, ((KuaidiStatus)declaredField.get(kuaidiManage)).getName());
- }
- }
- row.putAll(row2);
- row2 = new LinkedHashMap<String, Object>();
- }
- String fileName = Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(0,Thread.currentThread().getContextClassLoader().getResource("").getPath().length()-16)
- +"/upload/"+UUID.randomUUID().toString()+".xls";
- ArrayList<Map<String, Object>> rows = CollUtil.newArrayList(row);
- ExcelWriter writer = null;
-
- try {
- writer = ExcelUtil.getWriter(fileName);
- } catch (Exception e){
-
- }
- try {
- // 一次性写出内容,使用默认样式,强制输出标题
- writer.write(rows, true);
- } catch (Exception e){
-
- }
- try {
- // 关闭writer,释放内存
- writer.close();//其实不写这句在功能上也可以,但是为了规范,最好写上
- } catch (Exception e){
-
- }
- //转码,免得文件名中文乱码
- // fileName = URLEncoder.encode(fileName,"UTF-8");
- //设置文件下载头
- response.addHeader("Content-Disposition", "attachment;filename=" + UUID.randomUUID().toString()+".xls");
- //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
- response.setContentType("multipart/form-data");
- BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
- int len = 0;
- InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileName)));
- while((len = bis.read()) != -1){
- out.write(len);
- out.flush();
- }
- out.close();
- }
- }
- /**
- * function:MVC的C层,也就是控制层,这个Controller类可以实现对KuaidiStatus这个类的控制,接收浏览器发送的请求并处理。KuaidiStatus类的具体介绍,在com.edu.model.KuaidiStatus类下,本处不在赘述
- * 本文件和SSM结构的关系:SSM结构的架构就是JSP(浏览器)发送请求,然后请求到对应的Controller,然后Controller调用Service,Service调用Mapper,mapper调用数据库实现增删改查,最后由Controller返回到JSP完成全过程。
- * 本文件对应Controller,负责表KuaidiStatus
- * 箭头结构:JSP->[Controller]->Service->Mapper->数据库-->JSP
- * MVC层级划分:本文件在MVC模式中的C层,即控制层
- */
- @Controller//说明这个文件是MVC三层架构的Controller,加了这个注解之后,spring可以自动扫描到这个类,可以自动对类进行配置,这里也体现使用了spring框架
- @RequestMapping(value = "KuaidiStatus")//定义请求的路径,路径为KuaidiStatus,定义之后,浏览器获取数据就根据这个路径来进行访问,其他的同理,只要有@RequestMapping注解的都是这样
- public class KuaidiStatusController {//Controller包含在名字中是一种规范
- @Autowired//自动注入,Spring的注解,这样的话,程序就可以自动把这个类扫进来,不需要手动创建对象
- private KuaidiStatusService kuaidiStatusService;//调用数据库mapper,mybatis框架的内容,可以实现增删改查
-
- @RequestMapping(value = "/initPage.do")//设置添加跳转的页面
- public String initPage(HttpServletRequest request, Model model) {//在点击添加的时候加载一些预置代码
- return "KuaidiStatus/saveOrUpdate";//跳转到编辑页面
- }
-
- @RequestMapping(value = "/selectList.do")
- public String selectList(HttpServletRequest request, KuaidiStatus kuaidiStatus, Model model) {//获取列表,最后跳转到列表查询页面,获取的是
- kuaidiStatus = kuaidiStatusService.getById(kuaidiStatus.getId());//获取要更新的对象
- model.addAttribute("util", kuaidiStatus);//传到前台
- return "KuaidiStatus/saveOrUpdate";//跳转到编辑页面
- }
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @RequestMapping(value = "/getAllDataInPage.do")//获取列表的数据
- public String getAllDataInPage(HttpServletRequest request, Model model) {
- String field = request.getParameter("field");
- String fieldValue = request.getParameter("fieldValue");//当前端有查询的时候,这里的fieldValue就不是空,否则是空
- try {
- fieldValue = new String(fieldValue.getBytes("UTF-8"), "UTF-8");//防止乱码
- } catch (Exception e) {}
- String pageNo = request.getParameter("pageModel.currentPageNo");//获取当前页码是多少
- int currentPageNo = 1;//设置初始化页码是1
- try{
- currentPageNo = Integer.parseInt(pageNo);//防止前端传的不是数字
- }catch(Exception e){
- }
- List<KuaidiStatus> list = kuaidiStatusService.getList(field, fieldValue);//获取列表数据
- PageModel pageModel = new PageModel();
- pageModel = pageModel.getUtilByController(list, currentPageNo);
- model.addAttribute("pageModel", pageModel);//查询后,把查询的条件类型回显到jsp中
- model.addAttribute("fieldValue", fieldValue);//查询后,把查询的关键字回显到jsp中
- model.addAttribute("field", field);
- return "KuaidiStatus/find";//跳转到find.jsp页面,也就是列表页面,KuaidiStatus文件夹下面
- }
-
- @RequestMapping(value = "/deleteUtil.do")
- public String deleteUtil(HttpServletRequest request, KuaidiStatus kuaidiStatus, Model model) {//删除的代码
- try{
- kuaidiStatusService.deleteById(kuaidiStatus.getId());//根据ID删除
- }catch(Exception e){
- }
- return this.getAllDataInPage(request, model);//返回到列表页面,对应admin文件夹下的KuaidiStatus文件夹下的find.jsp
- }
-
- @RequestMapping(value = "/deleteManyDataByIds.do")//批量删除
- public String deleteManyDataByIds(HttpServletRequest request, User user,Model model) {
- String ids[] = request.getParameterValues("id"); //获取ID的列表
- for (String id : ids) {//考虑可能传多个id
- user = new User();
- user.setId(Integer.parseInt(id));
- try{
- kuaidiStatusService.deleteById(user.getId());//删除的核心代码
- }catch(Exception e){}
- }
- return this.getAllDataInPage(request, model);
- }
-
- @RequestMapping(value = "/saveOrupdate.do")//这里是编辑或者添加的具体代码
- public String saveOrupdate(HttpServletRequest request, KuaidiStatus util, Model model) {
- List<KuaidiStatus> list = kuaidiStatusService.getList("name", util.getName());
- if (0 == util.getId()) {
- if (list.size() > 0) {
- model.addAttribute("util", util);
- model.addAttribute("errMsg", "该信息已存在!");
- return "KuaidiStatus/saveOrUpdate";
- }
- kuaidiStatusService.insert(util);
- } else {
- if (list.size() > 1) {
- model.addAttribute("util", util);
- model.addAttribute("errMsg", "该信息已存在!");
- return "KuaidiStatus/saveOrUpdate";
- }
- kuaidiStatusService.update(util);
- }
- return this.getAllDataInPage(request, model);
- }
-
- @RequestMapping(value = "/export.do")
- public void export(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {//获取列表,最后跳转到列表查询页面,获取的是
- Map<String, Object> row2 = new LinkedHashMap<String, Object>();
- Map<String, Object> row = new LinkedHashMap<String, Object>();
- String field = request.getParameter("field");
- String fieldValue = request.getParameter("fieldValue");//当前端有查询的时候,这里的fieldValue就不是空,否则是空
- try {
- fieldValue = new String(fieldValue.getBytes("UTF-8"), "UTF-8");//防止乱码
- } catch (Exception e) {}
- List<KuaidiStatus> list = kuaidiStatusService.getList(field, fieldValue);//获取列表数据
- Class p= KuaidiStatus.class;
- Field[] fields = p.getDeclaredFields();
- for(KuaidiStatus kuaidiStatus:list) {
- for (int j = 0; j < fields.length; j++) {
- System.out.println(fields[j].getName().toLowerCase());
- Field declaredField = p.getDeclaredField(fields[j].getName());
- declaredField.setAccessible(true);
- // Tip tip = declaredField.getAnnotation(Tip.class);
- //System.out.println(annotation.age()+":"+annotation.name());
- String name = declaredField.getAnnotation(Tip.class).value();
- if(name == null){
- continue;
- }
- if(declaredField.getType().toString().equals("class java.lang.String")){
- row2.put(name, declaredField.get(kuaidiStatus));
-
- }else if(declaredField.getType().toString().equals("int")){
- row2.put(name, declaredField.get(kuaidiStatus));
- }
- }
- row.putAll(row2);
- row2 = new LinkedHashMap<String, Object>();
- }
- String fileName = Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(0,Thread.currentThread().getContextClassLoader().getResource("").getPath().length()-16)
- +"/upload/"+UUID.randomUUID().toString()+".xls";
- ArrayList<Map<String, Object>> rows = CollUtil.newArrayList(row);
- ExcelWriter writer = null;
-
- try {
- writer = ExcelUtil.getWriter(fileName);
- } catch (Exception e){
-
- }
- try {
- // 一次性写出内容,使用默认样式,强制输出标题
- writer.write(rows, true);
- } catch (Exception e){
-
- }
- try {
- // 关闭writer,释放内存
- writer.close();//其实不写这句在功能上也可以,但是为了规范,最好写上
- } catch (Exception e){
-
- }
- //转码,免得文件名中文乱码
- // fileName = URLEncoder.encode(fileName,"UTF-8");
- //设置文件下载头
- response.addHeader("Content-Disposition", "attachment;filename=" + UUID.randomUUID().toString()+".xls");
- //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
- response.setContentType("multipart/form-data");
- BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
- int len = 0;
- InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileName)));
- while((len = bis.read()) != -1){
- out.write(len);
- out.flush();
- }
- out.close();
- }
- }
源码获取:俺的博客首页 "资源" 里下载!