JSF2通过Backing Bean的AJAX获取JSON数据

时间:2012-07-29 14:24:38

标签: ajax jsf-2

我正在使用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);
}

当使用一些input-element时,我设法用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。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

另见: