若依框架实现 导入excel时校验必填字段

萨瓦迪卡4个月前 (01-13)java技术325
  1. 1.Excel类自定义注解添加必填校验

  2. /**
     * 判断是否必填项
     */
    public boolean required() default false;

    2.在实体类的字段添加检验

@Excel(name = "姓名",required = true)
private String personName;

3.在ExcelUtil类的importExcel方法里,获取是否必填属性并进行校验

 if (StringUtils.isNotNull(fieldType))
    {
        String propertyName = field.getName();

        if (StringUtils.isNotEmpty(attr.targetAttr()))
        {
            propertyName = field.getName() + "." + attr.targetAttr();
        }
        //获取是否有必填属性
        boolean required = attr.required();
        if(required) {
            if(StringUtils.isNull(val) || StringUtils.isEmpty(val.toString())) {
                throw new Exception(attr.name()+" 单元格未填写,请正确填写!");
            }
        }

        if (StringUtils.isNotEmpty(attr.readConverterExp()))
        {
            val = reverseByExp(Convert.toStr(val), attr.readConverterExp(), attr.separator());
        }
        else if (StringUtils.isNotEmpty(attr.dictType()))
        {
            val = reverseDictByExp(Convert.toStr(val), attr.dictType(), attr.separator());
        }
        else if (!attr.handler().equals(ExcelHandlerAdapter.class))
        {
            val = dataFormatHandlerAdapter(val, attr, null);
        }
        else if (ColumnType.IMAGE == attr.cellType() && StringUtils.isNotEmpty(pictures))
        {
            PictureData image = pictures.get(row.getRowNum() + "_" + entry.getKey());
            if (image == null)
            {
                val = "";
            }
            else
            {
                byte[] data = image.getData();
                val = FileUtils.writeImportBytes(data);
            }
        }
        ReflectUtils.invokeSetter(entity, propertyName, val);
    }
}

4.页面效果

image.png

本文原创,转载必追究版权。

分享给朋友:

相关文章

高情商女孩,女生看了都喜欢

高情商女孩,女生看了都喜欢

 王晨阳:19岁大四,北京航空航天大学,插画专业,夜市卖过化妆品,开过儿童美术教学班,某网站签约网络小说作家,15岁开始,3年时间写了8部小数约24万字;对话1:沈东军 vs王晨阳沈东军:像...

ejb项目发布注意事项

 部署ejb的服务建好后,找到ejb部署的服务的启动文件:如D:\Oracle\Middleware\user_projects\domains\wssscx\bin\startWebLog...

 程序员的中秋礼物.......

程序员的中秋礼物.......

【小姐你好,我是程序员】“小姐你好,我是程序员。”女生礼貌地回答:“你好,程先生。”男:“……哦,叫我序员就可以了。”   【程序员的愿望】有一天一个程序员见到了上帝。上...

js限制input只能输入数字、英文、汉字

 1.只能输入数字和英文的:  <input onkeyup="value=value.replace(/[\W]/g,'') "...

freeMarker Jfinal 获取session里的值

问题:freeMaker session取值的常用格式都试过 session["xxx"],session.xxx 直接xxx 都取不出来?????解决:JFinal与Struts...

MyEclipse 报错:'Building workspace' has encountered a problem解决方法

MyEclipse 报错:'Building workspace' has encountered a problem解决方法

          每次MyEclipse运行 工作空间报错如下:'Building workspac...

评论列表

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。