通过分析@ExcelProperty注解的文字信息,实现半自动展示页,编辑页

 

import org.springframework.util.ReflectionUtils;
ReflectionUtils.doWithFields循环遍历对象中的所有属性。只处理其中
ExcelProperty 注解的字段。这个代码对很多单位最简单的日常表格维护效率很高。

复制代码
 1 List<MemberInfoVo> memberInfoFields=new ArrayList<>();
 2 
 3         ReflectionUtils.doWithFields(memberInfo.getClass(), new ReflectionUtils.FieldCallback() {
 4             @Override
 5             public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException {
 6                 field.setAccessible(true);
 7                 ExcelProperty excelProperty=field.getAnnotation(ExcelProperty.class);
 8                 if(excelProperty!=null){
 9                     /**
10                      * ExcelProperty中的中文注释
11                      */
12                     String chineseName=StringUtils.join(excelProperty.value());
13                     /**
14                      * POJO中的英文属性字母。做修改页面的时候需要
15                      */
16                     Object fieldValue = field.get(memberInfo);
17                     /**
18                      * 这个属性对应的值。这里简化只处理为字符串String
19                      */
20                     String value=fieldValue==null?"":(String) fieldValue.toString();
21                     if(StringUtils.isNotBlank(value)){
22                         MemberInfoVo vo=new MemberInfoVo(chineseName,value,field.getName());
23                         memberInfoFields.add(vo);
24                     }
25                 }
26             }
27         });
28 
29         request.setAttribute("memberInfoFields",memberInfoFields);
复制代码

 

将属性全部
memberInfoFields list

在页面渲染展示

复制代码
 1 public class MemberInfoVo {
 2     private String chineseName;
 3     private String value;
 4     private String fieldName;
 5 
 6     public MemberInfoVo(){
 7         super();
 8     }
 9 
10     public MemberInfoVo(String chineseName,String value,String fieldName){
11         this.chineseName=chineseName;
12         this.value=value;
13         this.fieldName=fieldName;
14     }
复制代码

 

posted @   nanahome  阅读(3244)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示