# crm **Repository Path**: lz_mazha/crm ## Basic Information - **Project Name**: crm - **Description**: 声明:此项目属动力节点所有,本仓库只为学习使用,如有需要请拉取,发现问题见解请留言,欢迎转发评论,共同学习。 crm客户交互系统:jsp-servlet-mybatis 说明:bugfix分支可供共同学习的开发者提交(注入新功能、修复问题、健壮工程) - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-02-13 - **Last Updated**: 2022-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 2021-02-19: ### 问题: 遇到sqlSessionUtil这个工具类类找不到异常三天,终于解决了,定位到是工具类中静态代码块读取mybatis-config.xml文件 有问题,但是没搞清楚原因 ### 解决方式: 根据原因是读不到mybatis配置文件,而配置文件在resources目录下,说明不能读取resources目录中内容,在pom.xml文件build标签中加入 ```xml src/main/java **/*.properties **/*.xml false src/main/resources **/*.properties **/*.xml false ``` 2021-02-20: 市场活动删除功能,老师是先查询市场活动备注表后删除备注表,再删除市场活动表,多次与数据库交互降低性能,使用两表关联删除,使用left左连接 直接删除两表的记录 ### 问题(已解决): 分页插件显示有问题,并且觉得很丑,待替换一个插件,显示记录也不正确,当前页显示5条记录,第二页应该是后五条数据,现在显示的是已第二条记录 开始的后5条记录,并不是从第6条记录开始的后5条记录 2021-02-21: ### 问题(已解决): 分页插件显示有问题,并且觉得很丑,待替换一个插件,显示记录也不正确,当前页显示5条记录,第二页应该是后五条数据,现在显示的是已第二条记录 开始的后5条记录,并不是从第6条记录开始的后5条记录 ### 解决方法: 解决了老师使用的分页插件问题,使用了新的插件,并解决了查库显示记录不正确的问题,通过公式:pageNo = (page * pageSize) + 1 - pageSize; 得出查库时的从第几条记录开始查的值,这样查到当前页正确记录后,再将值转换回当前页码传给分页插件,解决了问题,且插件美观度相对于之前的更好 新插件包在工程下文件:自修改分页插件.zip.xml(删除后缀.xml解压即可) ### 问题(待解决): 添加、修改、删除市场活动记录后,页面展示问题,目前各功能都是写死的活到第一页展示5条记录pageList(1,5),需要操作后停留才当前页 2021-02-24: 提交代码注释信息格式: 【功能新增】 【功能修改】 【BUG修复】 【开发周期】 【开发周期】 【开发周期】 【提交人】 【提交人】 【提交人】 【评审人】 【评审人】 【评审人】 2021-03-18: 线索表: CREATE TABLE `tbl_clue` ( `id` char(32) NOT NULL, `fullname` varchar(255) DEFAULT NULL COMMENT '姓名', `appellation` varchar(255) DEFAULT NULL COMMENT '称呼', `owner` char(32) DEFAULT NULL COMMENT '所有者', `company` varchar(255) DEFAULT NULL COMMENT '公司', `job` varchar(255) DEFAULT NULL COMMENT '职位', `email` varchar(255) DEFAULT NULL COMMENT '邮箱', `phone` varchar(255) DEFAULT NULL COMMENT '公司座机', `website` varchar(255) DEFAULT NULL COMMENT '公司网站', `mphone` varchar(255) DEFAULT NULL COMMENT '手机', `state` varchar(255) DEFAULT NULL COMMENT '线索状态', `source` varchar(255) DEFAULT NULL COMMENT '线索来源', `createBy` varchar(255) DEFAULT NULL COMMENT '创建人', `createTime` char(19) DEFAULT NULL COMMENT '创建时间', `editBy` varchar(255) DEFAULT NULL COMMENT '修改人', `editTime` char(19) DEFAULT NULL COMMENT '修改时间', `description` varchar(255) DEFAULT NULL COMMENT '线索描述', `contactSummary` varchar(255) DEFAULT NULL COMMENT '联系纪要', `nextContactTime` char(10) DEFAULT NULL COMMENT '下次联系时间', `address` varchar(255) DEFAULT NULL COMMENT '详细地址', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 2021-03-22: 知识点记录: 通过detail.jsp页面跳转到其他jsp页面过程中可以在跳转地址后加请求参数,如:window.location.href='workbench/clue/convert.jsp?id=${clue.id}&fullname=${...} jsp本质也是servlet,通过跳转请求加上参数可以在跳转到的页面中取出参数,取出参数的方式有两种: 1.使用jsp原生的表达式取值 2.使用el表达式取值 使用el表达式取值需要使用el表达式的11中隐含对象中的param对象,作用是它可以获取请求参数的值。 如:

转换线索 ${param.fullname}-${param.appellation}

在需要取值的地方直接使用el表达式的param对象.参数名方式取出参数值 若不使用param隐含对象直接使用${参数名}方式取值,这种方式是从域对象中取值,也就是jsp的九大域对象中取出响应或者其他方式保存在域中的值 延申知识点: 由于el表达式的11中隐含对象中没有如request这种jsp的九大域对象,所以需要使用el表达式中pageContext对象来获取jsp的九大域对象 pageContext对象的作用它可以获取jsp中的九大内置对象 2021-03-29: ### 问题: 现存bug问题,线索关联市场活动前端不能发请求到后台,复选框id存在问题:$xz.length == 0 其中$xz不能调.length方法,暂时不清楚原因 2021-04-05: ### 知识点: 读取properties文件中内容可以使用ResourceBundle.getBundle("文件名");形式获取内容,文件名后不需要.properties后缀 例: ```java // 读取Stage2Possibility.properties文件内容,作为创建交易页面的可能性值 ResourceBundle stage2Possibility = ResourceBundle.getBundle("Stage2Possibility"); Set keySet = stage2Possibility.keySet(); for (String key : keySet) { String value = stage2Possibility.getString(key); map.put(key, value); } servletContext.setAttribute("stage2", map); ``` ## 完结撒花 ### 项目总结 经过几个月的开发,终于踉踉跄跄的写完,虽然还有些bug没调完,经过此项目,对Java web学习的更全面,不在畏惧过滤器、监听器,一直觉得 他们是很高大上的东西,项目总体难度对于我而言在于前端的开发,后端还是比较简单的,sql也不难,由于工作原因(天天加班)延期到五月了, 超出计划一个月时间,现阶段也在纠结了,是继续向spring系列推进,还是深入学习基础。好杂,好难