JSF2,PrimeFaces和Highcharts - Ajax

Bhe*_*ung 6 highcharts primefaces jsf-2

有人一起使用过JSF2,PrimeFaces和Highcharts吗?我真的很困惑我应该如何把所有这些放在一起,特别是关于ajax请求从服务器获取数据以提供给视图上的Highcharts来更新图表.

我现在拥有的是一个处理Ajax请求的servlet,它使用JQuery.ajax()方法发送,并使用JQuery以接收为JSON对象的新数据更新图表.我正在使用GSon.toJSon将Java对象转换为JSON对象.

我想在这里实现的是我想用JSF2替换该servlet.我想使用JSF并使用一些支持bean来准备并将JSON对象发送到客户端,而不是使用不同的servlet.

任何人?

Mar*_*ark 7

在下面的示例中,p:commandButton启动ajax请求.您要使用的JSON对象可以存储在h:inputHidden字段中.当p:commandButton完成时,调用javascript函数来更新图表.javascript函数将能够从h:inputHidden字段访问JSON对象.

XHTML

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.prime.com.tr/ui">

    <h:head>
        <script type="text/javascript">           
            function dosomething() {
                var value = jQuery("#beanvalue").attr('value');
                alert(value);
            }
        </script>
    </h:head>
    <h:body>
        <h:form prependId="false" >
            <p:commandButton value="update" action="#{testBean.update}" update="beanvalue" oncomplete="dosomething();" />
            <h:inputHidden value="#{testBean.output}" id="beanvalue"  />
        </h:form>
    </h:body>
</html>
Run Code Online (Sandbox Code Playgroud)

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean
@ViewScoped
public class TestBean {

    private String output;

    public TestBean() {
        output = "1";
    }

    public void update() {
        output += "1";
    }

    public String getOutput() {
        return output;
    }

    public void setOutput(String output) {
        this.output = output;
    }
}
Run Code Online (Sandbox Code Playgroud)