通过分析@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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报