当前位置:   article > 正文

SSM整合项目:CRM客户管理系统_百度云(ssm)crm客户管理系统

百度云(ssm)crm客户管理系统
CRM项目
RequestMethod类,枚举类型。
MultipartFile类,配置接口的实现类。
把之前的数据表拿过来修改一下用。
新建数据库,再运行sql文件,即可导入数据库。
整合SSM框架
新建maven为什么没有生成文件夹啊?
新建maven项目,maven软件的安装位置,maven核心配置文件的位置,maven仓库的位置,这三个选不对,就不能正常创建项目。
添加依赖管理。
新建java和resources文件夹并设置对应属性。
添加静态资源(静态资源添加的位置),加入分页标签。
 
标签库:
1)自定义标签库,标签库中可能有多个标签,也可能只有一个标签。
2)标签的功能也是有java代码实现的,每一个标签都要有java类的支持。
3)继承自TagSupport,就可以书写自定义标签。
 
实现页面展示:
页面布局错乱:Js,css样式都被拦截掉了,所以导致页面布局出现问题。
使用*.do进行解决;通过spring-mvc对静态资源进行放行
 
点击F12再刷新页面才会开始记录网络请求的。
F12:查看网络请求的,对前端页面进行调试。查看Network基本信息,请求了哪些地址及每个URL的网络相关请求信息都可以看的到URL,响应状态码,响应数据类型,响应数据大小,响应时间。

XHR:XMLHttpRequest在后台与服务器交换数据。


 
实现查询条件初始化,其实就是查询导航栏。
springMVC @Value的使用:将某个常量,给变量赋值,供程序使用。@Value获取某个参数的值并不是随随便便就能取到的,需要遵循一定的格式。
1)加载读取配置文件,2)读取其中键值对中键的名字。
resources.properties。
 
三层中,首先编写dao层。
写sql注意数据库的字段和对象的属性名不一样(在这里错了太多次)。
模糊查询和精确查询。
 
只在Service的接口实现类上添加注解,不需要在接口上添加注解
 
通过tomcat日志去查看错误信息,看看是哪里报错了,如何解决?
学会查看tomcat的报错信息,一般都能解决问题,大致哪里写错了。

当前启动的哪个Tomcat,就去看对应的运行日志?Run面板。

log4j.properties 日志的名字


Jsp页面主要用于后台管理系统,页面展示。
EL表达式,JSP指令,JSP脚本,JSP指令内置对象,JSP标签库,Form表单。
如何在jsp页面中发送网路请求?
Form表单的使用:发送网络请求。
jsp页面与java后台的交互还是不熟悉,一定要精通。对表单的网络请求不熟悉。
Jstl标签库:什么时候使用jstl标签库?格式化日期,非空判断,循环遍历等
Jsp页面中如何输入java代码?
 
<Form>提交按钮<input type="submit"> 定义用于向表单处理程序(form-handler)提交表单数据的按钮。
action 属性定义在提交表单时,发送网络请求。
method 属性规定在提交表单时所用的 HTTP 方法(GET POST)。
name 属性:如果要正确地被提交,每个输入字段必须设置一个name 属性。
 
${pageContext.request.contextPath}
pageContext对象是JSP中很重要的一个内置对象,pageContext对象提供了对JSP页面所有的对象及命名空间的访问。
request.contextPath()拿到的是web项目的根路径。

 

类头注释
/**
*describe:
*
*@author chenrushui
*@date ${YEAR}/${MONTH}/${DAY}

*/

xml映射文件:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://www.mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="com.crm.mapper.CustomerDao">
  4. <!--查询到的数据的条数-->
  5. <select id="customCount" parameterType="QueryVo" resultType="Integer">
  6. select count(1) from customer
  7. <where>
  8. <if test="custName!=null and custName!=''">
  9. cust_name like "%"#{custName}"%"
  10. </if>
  11. <if test="custSource!=null and custSource!=''">
  12. and cust_source = #{custSource}
  13. </if>
  14. <if test="custIndustry!=null and custIndustry!=''">
  15. and cust_industry = #{custIndustry}
  16. </if>
  17. <if test="custLevel!=null and custLevel!=''">
  18. and cust_level = #{custLevel}
  19. </if>
  20. </where>
  21. </select>
  22. <!--通过id查询用户信息-->
  23. <select id="selectCustomerById" parameterType="Integer" resultType="com.crm.pojo.Customer">
  24. select * from customer where cust_id=#{id}
  25. </select>
  26. <update id="updateCustomerById" parameterType="Customer">
  27. update customer set cust_name=#{cust_name} where cust_id=#{cust_id};
  28. </update>
  29. <delete id="deleteCustomer" parameterType="Integer">
  30. delete from customer where cust_id=#{id}
  31. </delete>
  32. </mapper>

Controller层代码:

  1. package com.crm.controller;
  2. import com.crm.pojo.BaseDict;
  3. import com.crm.pojo.Customer;
  4. import com.crm.pojo.QueryVo;
  5. import com.crm.service.BaseCustomerService;
  6. import com.crm.utils.Page;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.beans.factory.annotation.Value;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.ui.Model;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.RequestMethod;
  13. import org.springframework.web.bind.annotation.ResponseBody;
  14. import java.util.List;
  15. /**
  16. * describe:用戶管理控制器
  17. *
  18. * @author chenrushui
  19. * @date 2018/06/14
  20. */
  21. @Controller
  22. @RequestMapping(value = "/customer")
  23. public class CustomerController {
  24. //注入成为成员变量:需要被加载的资源文件需要放到spring-mvc配置文件中。
  25. //这种方式特别好用,不需要通过ResourceBundle进行读取。
  26. @Value("${fromType.code}")
  27. private String fromTypeCode;
  28. @Value("${industryType.code}")
  29. private String industryTypeCode;
  30. @Value("${levelType.code}")
  31. private String levelTypeCode;
  32. @Autowired
  33. private BaseCustomerService mBaseCustomerService;
  34. /**
  35. * 展示前端页面
  36. *
  37. * @return
  38. */
  39. @RequestMapping(value = "/list")
  40. public String getCustomerList(QueryVo vo, Model model) {
  41. //特別注意:如何解决硬编码问题?通过注入成员变量的方式进行解决
  42. List<BaseDict> fromType = mBaseCustomerService.selectCustomerByCode(fromTypeCode);
  43. List<BaseDict> industryType = mBaseCustomerService.selectCustomerByCode(industryTypeCode);
  44. List<BaseDict> levelType = mBaseCustomerService.selectCustomerByCode(levelTypeCode);
  45. //特別注意:键的名称要和jsp页面中获取的一样。
  46. model.addAttribute("fromType", fromType);
  47. model.addAttribute("industryType", industryType);
  48. model.addAttribute("levelType", levelType);
  49. //填充结果数据
  50. Page<Customer> page = mBaseCustomerService.selectCustomerByQueryVo(vo);
  51. model.addAttribute("page", page);
  52. //实现数据回显(把数据返回)
  53. model.addAttribute("custName", vo.getCustName());
  54. model.addAttribute("custSource", vo.getCustSource());
  55. model.addAttribute("custIndustry", vo.getCustIndustry());
  56. model.addAttribute("custLevel", vo.getCustLevel());
  57. //model内部是通过request域实现的,通过el表达式获取的是哪个变量的值,控件的name属性名
  58. return "customer";
  59. }
  60. /**
  61. * 編輯用戶信息
  62. *
  63. * @param id
  64. * @return
  65. */
  66. @RequestMapping(value = "/edit.action", method = RequestMethod.GET)
  67. @ResponseBody
  68. public Customer changeCustomerInfo(Integer id) {
  69. return mBaseCustomerService.selectCustomerById(id);
  70. }
  71. /**
  72. * 保存修改的用户信息
  73. *
  74. * @param customer
  75. * @return
  76. */
  77. @RequestMapping(value = "/update.action", method = RequestMethod.POST)
  78. @ResponseBody
  79. public String updateCustomer(Customer customer) {
  80. Integer row = mBaseCustomerService.updateCustomerById(customer);
  81. System.out.print(row + "");
  82. return "ok";
  83. }
  84. @RequestMapping(value = "/delete.action", method = RequestMethod.POST)
  85. @ResponseBody
  86. public String deleteCustomer(Integer id) {
  87. Integer row = mBaseCustomerService.deleteCustomer(id);
  88. System.out.print(row + "受影响的行数");
  89. return "ok";
  90. }
  91. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/660595
推荐阅读
相关标签
  

闽ICP备14008679号