Как сказано в вашем первом вопросе о предмете, я предложил взять все изображения в Map<String, List<String>>
, где ключ карты - это значение раскрывающегося списка, а значение карты - это набор изображений. .
Так как вы не можете понять это, вот следующий пример того, как должна выглядеть страница JSF:
<h:form>
<h:selectOneMenu value="#{bean.groupName}">
<f:selectItem itemValue="Please select one" />
<f:selectItems value="#{bean.groupNames}" />
<f:ajax event="change" render="images" />
</h:selectOneMenu>
<h:panelGroup id="images">
<ui:repeat value="#{bean.images}" var="image">
<h:graphicImage value="#{image}" />
</ui:repeat>
</h:panelGroup>
</h:form>
А вот как должен выглядеть Bean
:
@ManagedBean
@ViewScoped
public class Bean {
private Map<String, List<String>> allImages = new LinkedHashMap<String, List<String>>();
private List<String> groupNames;
private String groupName;
public Bean() {
allImages.put("group1", Arrays.asList("group1a.jpg", "group1b.jpg", "group1c.jpg"));
allImages.put("group2", Arrays.asList("group2a.jpg", "group2b.jpg", "group2c.jpg"));
allImages.put("group3", Arrays.asList("group3a.jpg", "group3b.jpg", "group3c.jpg"));
groupNames = new ArrayList<String>(allImages.keySet());
}
public List<String> getImages() {
return allImages.get(groupName);
}
public List<String> getGroupNames() {
return groupNames;
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
}