【发布时间】:2011-12-06 11:30:15
【问题描述】:
是否可以调用 JSF 2.0 Facelet EL 中需要属性的方法。例如:
<h:outputText value="#{pojo.methodName}" />
其中 pojo 是 POJO 的一个实例,methodName 是方法的名称。因为 JSF 期望找到 getMethodName 方法,所以会抛出错误。 在有人问为什么需要这个之前,请考虑我们想要在计算的文本中显示的任何值,并且我们不需要 getter 方法并且没有源代码。
BalusC 回答后更新:
无法重命名,因为没有可用的源代码。方法名()不起作用。唯一的区别是在实际代码中它的链式 pojo。
<h:outputText value="#{pojo1.pojo2.methodName()}" />
由于其他属性适用于 pojo2,我假设它的 methodName 不能被调用。服务器说“该类没有属性methodName”
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
空面配置
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
</faces-config>
附注环境 JBoss 6 和 JSF 2
【问题讨论】: