我有一个超类Person
:PropertyNotFoundException上有条件地呈现的子类中的ui:重复
public class Person {
public abstract Type getType();
}
我有2个亚类的它:
public class JuridicalPerson extends Person {
public Type getType() {
return Type.JP;
}
public List<JuridicalBelong> getJuridicalBelongs() {
return juridicalBelongs;
}
}
public class NaturalPerson extends Person {
public Type getType() {
return Type.NP;
}
public List<NaturalBelong> getNaturalBelongs() {
return naturalBelongs;
}
}
JuridicalBelong
和NaturalBelong
具有不同的性质和罐不会被分类。
我有他们在List<Person>
想我呈现在JSF/Facelets的如下:
<ui:repeat value="#{bean.persons}" var="person">
<h:panelGroup rendered="#{person.type eq 'JP'}">
<ui:repeat value="#{person.juridicalBelongs}" var="juridicalBelong">
...
</ui:repeat>
</h:panelGroup>
<h:panelGroup rendered="#{person.type eq 'NP'}">
<ui:repeat value="#{person.naturalBelongs}" var="naturalBelong">
...
</ui:repeat>
</h:panelGroup>
</ui:repeat>
然而,这导致了以下情况例外:
javax.el.PropertyNotFoundException :“com.example.NaturalPerson”类没有“juridicalBelongs”属性。
这怎么可能?按我rendered
条件
<h:panelGroup rendered="#{person.type eq 'JP'}">
应该忽略NaturalPerson
,对不对?
你总是有正确的答案!感谢您分享您的知识@BalusC! :) – marcel 2015-04-22 14:14:44