我将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
)
我不知道如何使用地图中的列表值来执行此操作。请帮助我。
答案 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>();