在c:forEach循环中的视图构建时间中EL语句会发生什么。
<c:forEach var="v" values="#{bean.values}">
<p:inputText value="#{v.name}" />
</c:forEach>
class Bean {
public List<Pojo> getValues();
}
class Pojo {
public void setName (String);
public String getName();
}
如何评估此代码的渲染?到:
<p:inputText value="John Smith">
或
<p:inputText value="#{pojo.name}" >
答案 0 :(得分:5)
对于UI组件,在视图构建期间仅立即评估id
和binding
属性。所有其他属性都被推迟。即他们将获得ValueExpression
(或MethodExpression
)的实例,而不是立即评估的值。每个ValueExpression
/ getValue()
来电都会重新评估setValue()
。