JSF2通过AJAX从支持Bean获取JSON数据

JSF2通过AJAX从支持Bean获取JSON数据,ajax,jsf-2,Ajax,Jsf 2,我正在使用RichFaces4。我将flot用作JQuery图表库,我想实现一个图表,它通过AJAX不断刷新自己 我通过JSON从支持bean中获取图表的数据 我不知道如何将新数据从支持bean获取到javascript变量中。据我所知,我不能使用,因为没有用户交互,也没有使用html输入元素 我认为解决方案应该是使用jsf.ajax.request。但我也不明白,如果没有输入元素,如何调用它 下面是一段代码,说明了它应该是什么样子,但我不知道如何将支持bean中的值转换成javascript变

我正在使用RichFaces4。我将flot用作JQuery图表库,我想实现一个图表,它通过AJAX不断刷新自己

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

我不知道如何将新数据从支持bean获取到javascript变量中。据我所知,我不能使用
,因为没有用户交互,也没有使用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没有太多经验)


注意:我将javax.faces.SEPARATOR_字符改为“-”,因为jquery需要“:”


谢谢你的帮助

JSF对于这项工作来说是错误的工具。使用像JAX-RS这样的webservice框架,而不是像JSF这样的MVC框架。然后,您就可以在客户端使用jQuery的常规方法等等

另见:

看看这个JSF对于这项工作来说是错误的工具。使用像JAX-RS/WS这样的Web服务框架,而不是像JSF这样的MVC框架。然后,您可以在客户端使用jQuery的常规方式,依此类推。@Daniel谢谢,我将尝试一下。我希望有一个“更干净”的解决方案,但对每一个解决方案都很满意:)@BalusC这是我正在开发的一个现有应用程序,所以我不能改变整个设计。此外,这只是整个应用程序的一小部分。不管怎样,我认为使用jsf.ajax.request可以在不破坏jsf设计的情况下实现这一点,我错了吗?呃,你不需要改变整个设计。您只需要更改不工作的部分。不管怎样,您都需要更改它,即使是在使用一些与JSF兼容的神奇解决方案/黑客时。请注意,您不应该认为JSF/JAX-RS不能在单个Web应用程序中相邻运行。
<h:form id="dev-form">
<h:inputText id="input1" value="#{someBean.chartData}"/>
<h:outputText id="output1" value="#{someBean.chartData}" />
</h:form>