jsf方法表达式valuechanged事件在inputtext和selectOneMenu中工作或工作不同

时间:2017-05-04 14:58:55

标签: jsf methods el

我是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()}"使用方法表达式的正确方法是什么? 我说这个原因在另一个例子中有没有参数的方法,这两种方法有不同的行为,首先是关于属性丢失的相同错误,第二个显然是有效的。

任何帮助?谈论方法表达,它是值得赞赏的。谢谢。

0 个答案:

没有答案