第四天

1 区域数据批量导入功能

1.1 页面中引入插件并指定用作导入功能的按钮进行初始化

引入插件
第四天_第1张图片
初始化指定导入功能的按钮

1.2 在RegionAction中提供myFile参数接收页面传入的xls文件并提供importXls方法解析页面传入的xls文件;

第四天_第2张图片
第四天_第3张图片

1.3 在RegionServiceImpl中提供saveBatch方法批量保存xls数据到数据库中

第四天_第4张图片

1.4 在BaseDaoImpl中拓展通用saveOrUpdate方法

第四天_第5张图片

最后测试成功将数据导入数据库截图

第四天_第6张图片
第四天_第7张图片

2 使用pinying4J生成简码和城市编码

2.1 导入pinying4J的jar包以及工具类

第四天_第8张图片

2.2 在RegionAction中的importXls方法中添加自动生成简码和城市编码的代码

第四天_第9张图片

测试成功生成简码和城市编码的截图

第四天_第10张图片

3 重构分页代码

3.1 将StaffDaoImpl中的分页方法与分页参数抽取到BaseDaoImpl中作为一个通用的分页方法和参数使用

第四天_第11张图片
抽取通用参数
第四天_第12张图片
设置查询条件对象
第四天_第13张图片
抽取通用分页查询方法

3.2 在StaffAction和RegionAction中调用抽取的通用分页查询方法完成各自的分页查询请求

第四天_第14张图片
在StaffAction中调用抽取的分页查询方法
第四天_第15张图片
在RegionAction中调用抽取的分页查询方法

3.3 在region.jsp中修改表格数据请求地址为RegionAction中对应的分页查询方法地址

第四天_第16张图片

4 添加分区功能

4.1 在页面添加分区的窗口设置选择分区所在区域的下拉框数据请求地址

4.2 在RegionAction中添加区域列表查询方法并抽取相关代码是到BaseAction中作为一个通用的列表数据查询方法

第四天_第17张图片
在RegionAction中添加区域列表查询方法
第四天_第18张图片
抽取列表数据查询代码到BaseAction中作为一个通用的列表查询方法
抽取分区管理服务层对象实例到BaseAction中

5 组合条件分页查询分区功能

5.1 给查询分区窗口的查询按钮添加事件,用于处理用户的查询操作。

第四天_第19张图片
序列化查询表单数据,提交ajax查询请求

5.2 在SubareaAction中开发pageQuery分页查询方法,并对相应的查询条件进行处理,最后将查询出的数据调用BaseAction中的通用分页数据转json方法对页面返回相应的json数据。

第四天_第20张图片

6 分区数据导出功能

6.1 在页面给导出按钮绑定事件跳转后台用于处理导出数据的方法

6.2 在SubareaAction中开发exportXls方法用于处理导出数据的请求

第四天_第21张图片

6.3 测试导出分区数据成功

第四天_第22张图片
第四天_第23张图片

错误日志:

今天早上开发项目的时候启动一直失败,报以下截图中错误。

第四天_第24张图片

随后我在国内的csdn等各大开发者论坛网站到处搜索,把问题锁定在jar冲突和缺少jar包这两个方面。接下来花了一个半小时依旧没找出问题所在,然后我上国外的Stack Overflow搜索问题并一眼看见了和我问题一样的提问。进入之后发现了以下截图中的第一个答案就解决了我的问题,证明是我之前的方向有误,这是jdk版本与项目框架版本冲突导致的。

第四天_第25张图片

如果项目中的jdk版本变成了1.8,而spring和hibernate等框架依旧是3.xx的低版本就会出现这个问题。而这个项目本身就设计的是jdk版本1.7,并且这几天我一直都用的1.7开发没出现问题。而今天突然变成了1.8所以就导致了这种诡异的现象,具体原因我目前大概推算是因为昨天win10下方工具栏失灵点击无效,我在任务管理器重启了资源浏览器。这导致了myeclipse的进程强制结束而不是正常退出,所以也就使工作空间本来设置的jdk版本为1.7被重置成了默认的1.8。

在开发添加分区功能的时候控制台出现下面截图中的错误,并且数据添加失败。

后面确认实体属性名与表单参数名完全对应之后在浏览器中使用开发工具抓取添加分区时发出的网络请求发现导致这个问题出现的原因是请求地址错误,修改为正确的表单提交地址之后成功解决该问题。

在开发分页查询分区中控制台报出以下截图中的错误,并且查询数据失败。

之后采取debug的方式明确了错误发生在BaseAction中通用的分页数据转json方法中将对象序列化json的时候,又根据错误信息结尾的空指针异常信息排查到在pageBean对象中的分页数据subArea对象中的一个属性是region对象,而应为hibernate框架默认懒加载返回的region的代理对象,所以region对象内的所有属性值均为空导致序列化json失败。然后在Subarea对象的xml映射文件中在region的标签中加上lazy=false属性后成功解决该问题。

你可能感兴趣的:(第四天)