我需要显示/编辑多态实体。
我的抽象类是Person。
我的具体课程是自然人 and 有道德的人
每个具体类都有自己的自定义属性。
如何根据实体类使用适当的显示/编辑(复合)组件?
谢谢 ! :)
不存在这样的事情instanceof
在EL。但是,您可以(ab)使用Object#getClass()并访问 getterClass在 EL 中也是如此。然后只需确定组件的结果rendered
属性。
<h:panelGroup rendered="#{entity.class.name == 'com.example.PhysicalPerson'}">
<p>According to Class#getName(), this is a PhysicalPerson.</p>
</h:panelGroup>
<h:panelGroup rendered="#{entity.class.simpleName == 'MoralPerson'}">
<p>According to Class#getSimpleName(), this is a MoralPerson.</p>
</h:panelGroup>
然而,自定义 EL 函数会更简洁。请注意,由于 EL 中允许的属性名称具有极其严格的限制,因此上述内容不适用于 Tomcat 7 和克隆。 Java 保留文字,例如class
不再允许。你需要#{entity['class'].name}
等等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)