项目需求

不同的任务会有不同的配置,根据所选择的任务,展示不同的表单

思路

后端给页面返回 List <String,List> list, object 是各任务所有的属性集合

代码

// 自定义注解
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface TaskProperty {/*** 属性描述名*/String label() default "";/*** 默认值*/String defaultValue() default "";/*** 是否必填*/boolean required() default false;/*** 输入框文本*/String placeHolder() default "";
}//所有可执行的 枚举
@Getter
public enum TaskConfigEnum {HNZX(HnUploadConfig.class,"定时"),;private Class type;private String name;TaskConfigEnum(Class type, String name) {this.type = type;this.name = name;}
}// 对用task 需要的配置
@Data
public class HnUploadConfig {@TaskProperty (required = true,label = "ip地址",placeHolder = "127.0.0.1")private String host;@TaskProperty(required = true,label = "端口")private String port;@TaskProperty (required = true,label = "表达式")private String cron;@TaskProperty (required = true,label = "方法名")private String method;@TaskProperty (required = true,label = "参数")private String param;
}// main methodpublic Object getTranslatorList() {TaskConfigEnum[] translators = TaskConfigEnum.values();List<TaskVo> list = Arrays.stream(translators).map(translator -> {TaskVovo = new TaskVo();vo.setName(translator.getName());Class<?> type = translator.getType();Field[] fields = type.getDeclaredFields();List<TaskPropertyVo> propertyList = Arrays.stream(fields).filter(field -> field.isAnnotationPresent(TaskProperty.class)).map(field -> {TaskPropertyVo property = new TaskPropertyVo();property.setName(field.getName());TaskProperty translatorProperty = field.getAnnotation(TaskProperty.class);if (StringUtils.isNotBlank(translatorProperty.label())) {property.setLabel(translatorProperty.label());} else {property.setLabel(field.getName());}property.setRequired(translatorProperty.required());property.setPlaceHolder(translatorProperty.placeHolder());return property;}).collect(Collectors.toList());vo.setPropertyList(propertyList);return vo;}).collect(Collectors.toList());return list;}@Data
public class TaskVo {//名称private String name;//属性集合private List<TaskPropertyVo> propertyList;
}@Data
public class TaskPropertyVo {//属性名称private String name;//属性描述private String label;//是否必填private boolean required;//placeHolderprivate String placeHolder;
}

java 动态表单设计相关推荐

  1. java动态表单设计解析

    于雷劈网的表单设计器扩展,java实现后台解析(插件内容和字段和原版有一定改变).致敬雷劈网.http://formdesign.leipi.org/ 全部代码地址在 https://gitee.co ...

  2. mysql动态表单设计与实现_动态表单的数据库结构设计

    利用在线编辑器设计的表单,包含输入框,明细表(动态添加行)等需要存储到数据库的信息,现在有三种思路: 1.一个表单对应数据库的一张或多张物理表(主从表),这种设计在很多业务的情况下,其数据库的物理表会 ...

  3. 碎片数据收集利器-结构化动态表单设计思路

    本文基于面向基本公共卫生的业务系统设计经验,抽象出一套适合大型ERP系统的表单业务数据模型,目标是最大限度保留系统弹性的同时,尽可能降低系统复杂度和开发成本.enjoy~ 背景 填写表单应该是所有业务 ...

  4. JAVA动态表单,自定义表单,自定义字段

    基于雷劈网的表单设计器扩展,java实现后台解析(插件内容和字段和原版有一定改变).致敬雷劈网. http://formdesign.leipi.org/ 动态表单绘制完毕后由后台解析并存储到数据库, ...

  5. Java form表单原理,动态表单及动态建表实现原理[Java编程]

    赞助商链接 本文"动态表单及动态建表实现原理[Java编程]"是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下 ...

  6. java中显示动态信息的方法_java里的动态表单技术

    最近的一个项目,由于客户的需求等信息不确定,为了降低以后修改的成本及产品的推广考虑到动态表单技术,之前也一直在考虑到动态表单技术,毕竟在delphi里已经实现过了,由于我们采用的hibernate的执 ...

  7. java 自定义表单 动态表单 表单设计器 工作流引擎 flowable

    自定义表单设计模块都有哪些? 1 定义模版:拖拽左侧表单元素到右侧区域,编辑表单元素,保存表单模版 2 表单模版:编辑维护表单模版,复制表单模版,修改模版类型,预览表单模版 3. 我的表单:选择表单模 ...

  8. 表单设计工具和报表工具

    收集了一些资料: 1  .IBM发布开源HTML 5可视化设计工具Maqetta 4月12日,来自 IBM Impact 2011 的消息,IBM发布 Maqetta,一个创建桌面和移动用户界面的HT ...

  9. 基于mongodb的动态表单实现

    文章目录 1. 项目背景 2. 术语表 3. 技术选型 4. 概要设计 4.1. 逻辑架构图 4.2. 系统覆盖图 5. 详细设计 5.1. 元数据样例及说明 5.2. 关于uuid 6. 接口清单 ...

  10. 动态表单工作量给后端

    动态表单工作量给后端 让前端远离互相伤害 一个IT公司的日常就是程序员.产品经理.UI等同事们的互相残杀: 应用,不少前端就备受煎熬,除了修改需求的魔咒外,还有后端的重构和调整接口诅咒,即便需求没改, ...

最新文章

  1. 微型计算机系统外文,微型计算机控系统(单片机控制系统) 毕业论文外文翻译.doc...
  2. ORACLE8对象模型
  3. 【剑指offer-Java版】30最小的K个数
  4. 【Linux开发】linux设备驱动归纳总结(十二):简单的数码相框
  5. 在创业之路上不断创新
  6. HDU - 1223 DP 分类
  7. 社区 正式发布了跨平台的 CoreWCF 0.1.0 GA
  8. qq收不到oracle邮件,腾讯企业邮箱发送邮件失败
  9. 微内核和宏内核的区别(短小、精悍)
  10. percona-toolkit工具包的使用教程
  11. 删除某文件以外的文件
  12. C#动态生成Word文档并填充数据(一)
  13. jpa原生query_Spring Data Jpa @Query原生SQL
  14. VB更改任何标题程序源代码
  15. 【论文解读】结合概率图模型和神经网络做图片问答
  16. markdown编辑软件Ulysses 24.5 for Mac
  17. 上周热点回顾(4.30-5.6)
  18. mysql5.5创建学生情况表_数据库中创建一个学生表
  19. 苹果手机专用计算机,使用苹果手机,发现iphone连不上wifi怎么办?连不上wifi解决方法...
  20. SSO单点登录Java实现实例

热门文章

  1. 3.28Javase笔记day01
  2. 携手李连杰壹基金计划 创慈善博客
  3. 软件测试工程师的自我认识和定位!!
  4. 阿里中间件技术专家魏鹏:基于Java容器的多应用部署技术实践
  5. 简单的猜字游戏Java版
  6. UML10种图例之包图
  7. 计算机科学与技术[计算机及应用](本科)自考
  8. qq物联网 android sdk,qcloud-iot-sdk-android
  9. Miracle密码算法开源库(四)分析 :mrarth2.c
  10. 菜鸟入坑》springboot整合mongodb问题1-Decimal128和BigDecimal的转换