Jsf inputText onkeyup事件处理程序

时间:2012-06-21 11:26:14

标签: jsf-2 primefaces

在PrimeFace的inputText中,我需要在按下任意键时调用函数f1()

为了实现这一点,我在xhtml文件中有:

<p:inputText id="userName" onkeyup="#{myBean.f1()}" >

在我的MyBean.java我声明了这个功能:

public void f1()
{
// somecode
}

但是这段代码抛出异常:

  

javax.faces.FacesException:javax.el.E​​LException:/index.xhtml   @ 103,191 onkeyup =“#{MyBean.f1()}”:java.lang.NullPointerException

1 个答案:

答案 0 :(得分:7)

如果要调用java方法,则应使用p:ajax event而不是onkeyup属性

<p:inputText id="userName">
     <p:ajax event="keyup" listener="#{myBean.f1}"></p:ajax>
</p:inputText>
  

onkeyup:释放密钥时执行的客户端回调   输入元素。

换句话说onkeyup用于调用js函数,如onkeyup="alert('hello')"

关于你得到的异常:它导致你的页面试图在页面加载时执行f1方法而不是在keyup事件上 - 例如,如果你f1方法将返回一个字符串替换#{myBean.f1()},您生成的页面将如下所示:

... onkeyup="string value returned from f1 method" ...