2

如何在失去焦点时调用 bean 方法?

我试过这个,

<h:inputText id="receipeCode" value="#{receipeBean.receipeCode}" 
    onfocuslost="#{receipeBean.view}" />

但是,当光标移动到下一个输入字段时,不会调用该方法。

4

1 回答 1

4

“焦点丢失”事件称为“模糊”事件。所以,你基本上需要onblur

<h:inputText ... onblur="#{receipeBean.view}">

但是,这不会调用模糊上的指定方法。这只是在生成 HTML 输出期间将view属性打印为String代表一些 JavaScript 代码。它期待一个像这样的getter方法:

public String getView() {
    return "alert('peek-a-boo')";
}

如果您实际上有一种view()方法,那么您将面临一个方法PropertyNotFoundException。此外,这并不完全是“在模糊上调用 bean 方法”。这更像是“生成应该在模糊上运行的 JavaScript 代码”。

为了在 blur 上实际调用 JSF 支持 bean 方法,您需要一个<f:ajax>.

<h:inputText ...>
    <f:ajax event="blur" listener="#{receipeBean.view}" />
</h:inputText>
于 2013-11-14T11:45:09.997 回答