1

我正在使用 RichFaces 4。我使用 flot 作为 JQuery 图表库,我想实现一个图表,它通过 AJAX 不断刷新。

我通过 JSON 从我的支持 bean 获取图表数据。

我不知道如何将新数据从支持 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>

注意:我将 javax.faces.SEPARATOR_CHAR 更改为“-”,因为 jquery 需要“:”。

谢谢你的帮助!

4

1 回答 1

0

JSF 是不适合这项工作的工具。使用像 JAX-RS 这样的 web 服务框架,而不是像 JSF 这样的 MVC 框架。然后你可以在客户端用通常的方式使用 jQuery 等等。

也可以看看:

于 2012-07-30T21:34:34.160 回答