我是jsf技术和使用托管bean的新手。
我正在阅读Java平台,企业版Java EE教程第7版,但似乎不太清楚,我在下面的例子中有不同的问题:
<h:selectOneMenu value="#{user.age}" onchange="submit()" valueChangeListener="#{user.ageChanged}">
<f:selectItems value="#{user.ages}" />
<f:converter converterId="javax.faces.Integer"/>
</h:selectOneMenu>
<h:inputText id="name" value="#{user.name}" required="true" validator="#{user.validateName}" valueChangeListener="#{user.nameChanged}" onchange ="submit()" />
第一个完成工作,但第二个没有显示:
&#39; managedBean.User&#39;没有属性nameChanged。
但是ageChanged不是属性,而是第一个示例执行作业
但是我使用方法表达式来引用它在bean用户上出现的方法nameChanged,
我对方法表达式的括号的使用与否也感到困惑:
valueChangeListener="#{user.nameChanged}"
或valueChangeListener="#{user.nameChanged()}"
使用方法表达式的正确方法是什么?
我说这个原因在另一个例子中有没有参数的方法,这两种方法有不同的行为,首先是关于属性丢失的相同错误,第二个显然是有效的。
任何帮助?谈论方法表达,它是值得赞赏的。谢谢。