45

JSFのマネージドBeanからJavaScript関数を呼び出す(実行する)方法はありますか?

それが関係しているなら、私もPrimeFacesを使用しています。

4

6 に答える 6

38

使用している Primefaces のバージョンに応じて、使用できますRequestContext.execute("{js here}");

Primefaces 3.4 ドキュメントから:

RequestContext は、ajax リクエストが完了したときに JavaScript を実行する方法を提供します。このアプローチは、コールバック パラメータを渡して条件付き JavaScript を実行するよりも簡単です。以下の例では、ajax リクエストが完了するとダイアログが非表示になります。

コード

public void save() {
  RequestContext requestContext = RequestContext.getCurrentInstance();  
  requestContext.execute("dialog.hide()");
}
于 2012-11-20T13:23:19.893 に答える
8

Primefaces で最も近いものは次のとおりです。

http://www.primefaces.org/showcase/ui/callbackParams.jsf

3.0 にも拡張機能があると述べました。

http://code.google.com/p/primefaces/issues/detail?id=1342

于 2011-04-15T22:21:26.843 に答える
4

単純にはできません。

Managed Beanサーバー上で動作し、ブラウザー上で JavaScript が動作します。

managedbean に設定された値に応じて、条件付きで JavaScript を呼び出すことができます。

于 2011-04-15T09:52:52.400 に答える
1

一般に、Java は、スクリプト エンジンを使用して文字列を評価するための API を提供します。これは、javax.script.ScriptEngine および javax.script.ScriptEngineManager クラスによって実現できます。

あなたの状況が完全にはわかりませんが、javascript をマネージド Bean に文字列として渡すことができれば、おそらく Java スクリプト API を使用してサーバー側で javascript を実行できます。

詳細については、次のリンクを参照してください: http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html

于 2012-03-16T23:52:31.627 に答える