JHipster:如何在前端隐藏实体计算DTO字段仅关联实体显示?
解决方案
可以通过JDL的UI配置实现这个需求,有两种常用方式:
方式一:使用@Hidden注解控制字段显示场景
在定义displayName字段时,添加@Hidden注解并指定需要隐藏的前端场景,这样该字段就不会出现在AppUser自身的创建、编辑、详情页面,但依然会在多端关联实体的界面中正常显示。
示例JDL代码:
entity AppUser { name String // 其他业务字段 displayName String @MapstructExpression("java(s.getName()+'('+s.getId() + ')')") @Hidden(when = "CREATE,EDIT,DETAIL") } // 关联关系示例(以AppUser为一端、Order为多端为例) entity Order { orderNumber String } relationship OneToMany { AppUser to Order }
@Hidden的when参数支持的场景包括CREATE、EDIT、DETAIL、LIST,可根据需要组合调整。
方式二:通过ui块精细化配置实体界面字段
如果需要更灵活的控制(比如仅在列表页显示,其他页面隐藏),可以使用JDL的ui块单独定义AppUser各页面的字段列表:
entity AppUser { name String // 其他业务字段 displayName String @MapstructExpression("java(s.getName()+'('+s.getId() + ')')") } ui AppUser { list: [name, displayName] // 列表页保留displayName create: [name] // 创建页不显示displayName edit: [name] // 编辑页不显示displayName detail: [name] // 详情页不显示displayName }
以上两种配置都会被JHipster解析,在生成React前端代码时自动隐藏指定页面的displayName字段,同时不影响其在多端关联实体界面中的显示。
内容的提问来源于stack exchange,提问作者Nemo
相关产品推荐
相关产品推荐

