如何将列表作为阔叶树中的值呈现地图

how to present map with list as values in broadleaf

我有一个地图,键是字符串,值是列表。并想在我的 broadleaf 管理页面中展示它。

protected Map<String, List<SkuStoneDetails>> skuStoneDetails = new HashMap<String, List<SkuStoneDetails>>();

以前我有一个映射,其中键作为字符串,值作为对象,如下所示。

    protected Map<String, SkuStoneDetails> skuStoneDetails = new HashMap<String,<SkuStoneDetails>();

为此,我做了如下管理员演示。

    @AdminPresentationMap(friendlyName = "Sku StoneDetails",
    tab = ProductImpl.Presentation.Tab.Name.Stone_Details, tabOrder = ProductImpl.Presentation.Tab.Order.SkuStoneDetails,
        //tab = Presentation.Tab.Name.Advanced, tabOrder = Presentation.Tab.Order.Advanced,
        //group = ProductImpl.Presentation.Group.Name.RPPrice, groupOrder = ProductImpl.Presentation.Group.Order.RPPrice,
    keyPropertyFriendlyName = "Sku StoneDetails Key",
    deleteEntityUponRemove = true,
    mediaField = "stoneType",
    forceFreeFormKeys = true
)

我不知道如何使用 map.Kindly 中列出的值来帮助我。

我们目前通过 @AdminPresentationMap 在 Broadleaf 中不支持使用带有值列表的地图。欢迎在 https://github.com/BroadleafCommerce/BroadleafCommerce/issues.

打开一个新功能请求

我认为你最好的选择是像以前那样做。或者,您可以这样做:

public class SkuStone {
    @Column(name = "KEY")
    @AdminPresentation(friendlyNmae = "Sku StoneDetails Key")
    protected String key

    @OneToMany
    @AdminPresentationCollection(friendlyName = "Sku Stone Details")
    protected List<SkuStoneDetails> details = new ArrayList<SkuStoneDetails>();
}

然后代替protected Map<String, List<SkuStoneDetails>> skuStoneDetails = new HashMap<String, List<SkuStoneDetails>>();

@AdminPresentationCollection()
protected List<SkuStone> stones = new ArrayList<SkuStone>();