1

RichFaces 4 を使用しています。flot を JQuery Charting ライブラリとして使用しており、AJAX を介して更新を続けるチャートを実装したいと考えています。

バッキング Bean から JSON 経由でグラフのデータを取得します。

バッキング Bean から JavaScript 変数に新しいデータを取得する方法がわかりません。私が理解していること<f:ajax>から、ユーザーの操作がなく、html 入力要素が使用されていないため、使用できません。

を使うのが解決策だと思いますjsf.ajax.request。しかし、入力要素なしでそれを呼び出す方法もわかりません。

以下は、どのように見えるかを抜粋したコードですが、バッキング Bean から JavaScript 変数に値を取得する方法がわかりません。

$(function() {
function update(){
    //**dont know how this call should look like**
    jsf.ajax.request('dev-form-input1', {render:'dev-form-output1'});
    //'newAjaxData' would be the value from #{someBean.chartData}
    plot.setData(newAjaxData);
    // draw the chart with the new data
    plot.draw();
    //get an update every second
    setTimeout(update, 1000);
}

いくつかの入力要素を使用するときに、jsf.ajax.request で AJAX リクエストを送信できましたが、レンダリングする新しい値を取得できませんでした。そして、たとえ私がそれをjavascript変数で取得するのが難しいか分からなかったとしても(私はjavascriptの経験があまりありません)。

<h:form id="dev-form">
<h:inputText id="input1" value="#{someBean.chartData}"/>
<h:outputText id="output1" value="#{someBean.chartData}" />
</h:form>

注:jqueryには「:」が必要なので、javax.faces.SEPARATOR_CHARを「-」に変更しました。

ご協力いただきありがとうございます!

4

1 に答える 1

0

JSF は、この仕事に適したツールではありません。JSF のような MVC フレームワークではなく、JAX-RS のような Web サービス フレームワークを使用します。次に、クライアント側で通常の方法で jQuery を使用するだけです。

以下も参照してください。

于 2012-07-30T21:34:34.160 に答える