我理解根据JEE6 tutorial不应该有效。
<h:inputText value="${bean.name}/>
和托管bean
@ManagedBean
public class Bean {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
但它工作得很好,我可以从响应页面读取'name'属性。我认为它只适用于可写属性的延迟评估#{expr}。
答案 0 :(得分:1)
根据JEE6教程:
- Rvalue表达式可以读取数据,但无法写入。
- 立即评估的所有表达式都使用$ {}分隔符,并且始终是rvalue表达式
因此,这可能会让您认为您不能在可写属性中使用${}
,但如果您稍后阅读:
可以使用值表达式:使用表达式的值表达式 $ {}分隔符可用于:
- 静态文字
- 任何可以接受表达式的标准或自定义标记属性
所以,如果我没有弄错的话,这与前者并不矛盾。这只是意味着当您使用<h:inputText value="${bean.name}"/>
时,它将用于读取name
属性,但如果修改{{1}中的内容,将不会写 }}