JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

时间:2024-03-25 16:05:50

学习计划

1、实现区域导入功能

n OCUpload一键上传插件使用

n 将文件上传到Action

n POI简介

n 使用POI解析Excel文件

n 完成数据库操作

n 使用pinyin4J生成简码和城市编码

2、区域分页查询

n 页面调整

n 服务端实现

3、重构分页代码

n BaseAction

n 子类Action

4、分区添加功能

n 什么是分区

n 页面调整(combobox使用)

n 服务端实现

实现区域导入功能

2.1 jquery OCUpload一键上传插件使用

OCUpload(One Click Upload)

第一步:将js文件引入页面

<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.ocupload-1.1.2.js"></script>

第二步:在页面中提供任意一个元素

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

第三步:调用插件提供的upload方法,动态修改HTML页面元素

<script type="text/javascript">
$(function(){
//页面加载完成后,调用插件的upload方法,动态修改了HTML页面元素
$("#myButton").upload({
action:'xxx.action',
name:'myFile'
});
});
</script>

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

2.2 在服务端接收上传的文件

在Action中提供一个File类型的属性,名称和上传的文件输入框名称一致regionFile

@Controller
@Scope("prototype")
public class RegionAction extends BaseAction<Region>{
//属性驱动,接收上传的文件
private File regionFile; public void setRegionFile(File regionFile) {
this.regionFile = regionFile;
} /**
* 区域导入
*/
public String importXls(){
System.out.println(regionFile);
return NONE;
}
}

2.3 apache POI技术

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

下载开发包:

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、comboboxJAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

解压上面的zip文件:

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

在项目中引入POI的依赖:

        <dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.11</version>
</dependency>

POI使用:

@Test
public void test1() throws FileNotFoundException, IOException{
String filePath = "C:\\Users\\zhaoqx\\Desktop\\BOS项目(黑马32期)\\BOS-day05\\资料\\区域导入测试数据.xls";
//包装一个Excel文件对象
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(new File(filePath)));
//读取文件中第一个Sheet标签页
HSSFSheet hssfSheet = workbook.getSheetAt(0);
//遍历标签页中所有的行
for (Row row : hssfSheet) {
System.out.println();
for (Cell cell : row) {
String value = cell.getStringCellValue();
System.out.print(value + " ");
}
}
}

2.4 pinyin4J

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

        <!-- 引入pinyin4J的依赖 -->
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>
@Test
public void test1(){
//河北省 石家庄市 桥西区
String province = "河北省";
String city = "石家庄市";
String district = "桥西区";
//简码---->>HBSJZQX province = province.substring(0, province.length() - 1);
city = city.substring(0, city.length() - 1);
district = district.substring(0, district.length() - 1); String info = province + city + district; String[] headByString = PinYin4jUtils.getHeadByString(info);
String shortcode = StringUtils.join(headByString);
System.out.println(shortcode); //城市编码---->>shijiazhuang
String citycode = PinYin4jUtils.hanziToPinyin(city, "");
System.out.println(citycode);
}

区域数据分页查询

利用之前已经写好的pageQuery

重构分页代码

将重复分代码统一抽取到BaseAction中

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

分区数据添加功能

区域范围很大,对区域进行细分产生分区

5.1 easyUI combobox下拉框使用

制作一个json文件:

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

    <input data-options="url:'${pageContext.request.contextPath }/json/combobox_data.json',
valueField:'id',
textField:'name'"
class="easyui-combobox">

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

5.2 使用combobox展示区域数据

页面:WEB-INF/pages/base/subarea.jsp

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

第一步:修改页面中combobox:

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

添加获取name的方法

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

第二步:在RegionAction中提供listajax方法

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

第三步:在RegionDao中扩展方法

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

第四步:为添加窗口中保存按钮绑定事件

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

5.3 服务端实现

创建分区对应的Action、Service、Dao

分页查询问题

将Java对象转为json过程中,因为对象之间有相互引用关系,会发生死循环问题,解决方式,排除其中属性

JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox