1

我知道这不应该根据JEE6 教程工作。

<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;
    }
}

但它工作得很好,我可以从响应页面中读取“名称”属性。我认为它仅适用于可写属性的延迟评估#{expr}。

4

1 回答 1

1

根据JEE6教程:

  • 右值表达式可以读取数据但不能写入数据。
  • 立即计算的所有表达式都使用 ${} 分隔符并且始终是右值表达式

所以这可能会导致您认为您不能${}在可写属性中使用,但如果您稍后阅读:

可以使用值表达式的地方:使用 ${} 分隔符的值表达式可用于:

  • 静态文本
  • 可以接受表达式的任何标准或自定义标记属性

所以,如果我没记错的话,这与前者并不矛盾。它只是意味着你在使用<h:inputText value="${bean.name}"/>时会读取属性name,但如果你修改.inputText

于 2012-12-12T04:09:51.873 回答