JAVAEE——BOS物流项目05:OCUploadPOIpinyin4J重构分页代码分区添加combobox

Posted kent

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVAEE——BOS物流项目05:OCUploadPOIpinyin4J重构分页代码分区添加combobox相关的知识,希望对你有一定的参考价值。

学习计划

1、实现区域导入功能

n OCUpload一键上传插件使用

将文件上传到Action

n POI简介

使用POI解析Excel文件

n 完成数据库操作

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

2、区域分页查询

n 页面调整

n 服务端实现

3、重构分页代码

n BaseAction

子类Action

4、分区添加功能

n 什么是分区

页面调整(combobox使用)

n 服务端实现

 

 

实现区域导入功能

2.1 jquery OCUpload一键上传插件使用

OCUploadOne 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>

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

 

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

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

 

 

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 POIApache软件基金会的开放源码函式库,POI提供APIJava程序对Microsoft Office格式档案读和写的功能。

 

下载开发包:

 

 

解压上面的zip文件:

 

 

 

在项目中引入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

 

        <!-- 引入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

 

 

 

分区数据添加功能

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

 

5.1 easyUI combobox下拉框使用

制作一个json文件:

 

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

 

 

5.2 使用combobox展示区域数据

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

 

 

 

第一步:修改页面中combobox

 

 

添加获取name的方法

 

 

 

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

 

 

第三步:在RegionDao中扩展方法

 

 

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

 

 

 

5.3 服务端实现

创建分区对应的ActionServiceDao

 

分页查询问题

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

 

 

以上是关于JAVAEE——BOS物流项目05:OCUploadPOIpinyin4J重构分页代码分区添加combobox的主要内容,如果未能解决你的问题,请参考以下文章

JAVAEE——BOS物流项目02:学习计划动态添加选项卡ztree项目底层代码构建

JAVAEE——BOS物流项目14:Linux部署(安装jdktomcatmySQL)和扩展资料

JAVAEE——BOS物流项目04:学习计划datagrid分页查询批量删除修改功能

JAVAEE——BOS物流项目12:角色用户管理,使用ehcache缓存,系统菜单根据登录人展示

JAVAEE——BOS物流项目03:学习计划messagermenubutton登陆拦截器信息校验和取派员添加功能

JAVAEE——BOS物流项目06:分页查询分区导出Excel文件定区添加分页问题总结