jsfによって出力されたBeanで継承を使用したい。たとえば、異なる属性(catAttrとdogAttr)を持つ2つの子(catとdog)とdiscriminator(type)を持つ親クラス(animal)があります。動物のリストとそのすべての属性を印刷したいと思います。コード例(プロパティが見つからないという例外が返されます)、jsfページ:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<ui:repeat value="#{animalsBean.animals}" var="a">
<!-- General attributes -->
<label>Name: </label> #{a.name}<br/>
<!-- Specific attributes -->
<h:panelGroup rendered="#{a.type eq 'cat'}">
<label>Cat attributes:</label>
<h:inputTextarea value="#{a.catAttr}"/><br/>
</h:panelGroup>
<h:panelGroup rendered="#{a.type eq 'dog'}">
<label>Dog attributes:</label>
<h:inputTextarea value="#{a.dogAttr}"/><br/>
</h:panelGroup>
</ui:repeat>
</h:body>
AnimalsBean:
@ManagedBean
@SessionScoped
public class AnimalsBean {
private List<Animal> animals;
public List<Animal> getAnimals() {
return animals;
}
public void setAnimals(List<Animal> animals) {
this.animals = animals;
}
}
誰かが私を助けることができますか?ありがとう!