如何在broadleaf中将列表显示为值

时间:2015-01-07 14:21:43

标签: spring-mvc broadleaf-commerce

我将key作为字符串映射,将值作为列表映射。并希望在我的广告管理页面中提供此内容。

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

以前我用key作为字符串映射,并将值作为对象,如下所示。

    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
)

我不知道如何使用地图中的列表值来执行此操作。请帮助我。

1 个答案:

答案 0 :(得分:2)

我们目前通过@AdminPresentationMap在Broadleaf中支持具有值列表的Map。您可以在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>();