Jsf 无法在ActionListener之后重新加载primefaces 5图表

Jsf 无法在ActionListener之后重新加载primefaces 5图表,jsf,jakarta-ee,jsf-2,primefaces,Jsf,Jakarta Ee,Jsf 2,Primefaces,我有一个非常基本的web应用程序,它包含一页index.xhtml,其中包含通过link/button/menuitem呈现的primefaces图表。问题是,在刷新页面之后,图表根本不会呈现 <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm

我有一个非常基本的web应用程序,它包含一页index.xhtml,其中包含通过link/button/menuitem呈现的primefaces图表。问题是,在刷新页面之后,图表根本不会呈现

    <?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">
<f:view>
    <h:head>
        <title>Facelet Title</title>
        <link rel="stylesheet" type="text/css" href="css/main.css" />
    </h:head>
    <h:body>
        <h:form >
             <p:dock position="bottom">
                 <p:menuitem value="Home" icon="images/img1.png" url="#"/>
                <p:menuitem value="Chrome" icon="images/img1.png" url="#"/>
            </p:dock>


            <p:breadCrumb>
                <p:menuitem value="#{primeViewBean.applicationName}"/>

                <p:menuitem actionListener="#{primeViewAction.drawChart}" icon="pieImage" 
                            update="pieChart">
                    <f:param name="chartType" value="PieChart"/>
                </p:menuitem>

                <p:menuitem actionListener="#{primeViewAction.drawChart}" icon="barImage"
                            update="barChart">
                    <f:param name="chartType" value="BarChart"/>
                </p:menuitem>
                <p:menuitem actionListener="#{primeViewAction.drawChart}" icon="lineImage"
                            update="lineChart">
                    <f:param name="chartType" value="LineChart"/>
                </p:menuitem>

            </p:breadCrumb>

                <p:chart id="pieChart"  type="pie" model="#{primeViewBean.pieChartmodel}" />
                <p:chart id="barChart"  type="bar" model="#{primeViewBean.barChartmodel}"/>
                <p:chart id="lineChart"  type="line" model="#{primeViewBean.lineChartmodel}"/>

        </h:form>

    </h:body>
        </f:view>
</html>
我也使用了@all/@表单,但不起作用, 使用玻璃鱼4。关于netbeans 素数面5
Firefox 33.0

在js控制台的网络选项卡上观察流量;你看到服务器onclick返回的请求和正确的ajax响应了吗?是的,响应在那里,但没有呈现。需要帮助吗。。。让我知道我是否遗漏了这里的任何部分?将ajax响应粘贴到这里$function{PrimeFaces.cw'Chart','widget_j_idt4_pieChart',{id:'j_idt4:pieChart',type:'pie',data:[[Brand 1540],[Brand 2325],[Brand 3702],[Brand 4421]],标题:'Simple pie',legendPosition:'w','charts'};]>
public void drawChart(ActionEvent e){
        HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();

        String chartType = String.valueOf(request.getParameter("chartType"));
        ChartModel model = PrimeChartFactory.getChartInstance(chartType).getModel();
        if(primeBean!=null){
            if(model instanceof PieChartModel)
                primeBean.setPieChartmodel((PieChartModel)model);
            if(model instanceof BarChartModel)
                primeBean.setBarChartmodel((BarChartModel)model);
            if(model instanceof LineChartModel)
                primeBean.setLineChartmodel((LineChartModel)model);

            primeBean.setPageName("Usman Liaqat Set");
        }
    }