2

PrimeFaceinputTextでは、いずれかのキーが押されたときに関数‍‍‍ <code> 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

4

1 に答える 1

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がキーアップイベントではなく、ページの読み込み時にメソッドを実行しようとしたためです。たとえば、f1メソッドが文字列を返す場合、その文字列が置き換え#{myBean.f1()}られ、生成されたページは次のようになります。

... onkeyup="string value returned from f1 method" ...
于 2012-06-21T11:30:50.100 に答える