我不知道为什么 Ajax 在我的 JSF 文件中不起作用。即使我的 GlassFish 中有一个最新的 Mojarra,它是 3.2.13。这是我的代码
<h:head></h:head>
<h:body>
<h:panelGroup id="panel" rendered="#{chartBean.showCharts}">
<p:barChart id="basic" value="#{chartBean.categoryModel}"
legendPosition="ne" title="Basic Bar Chart" min="0" max="200"
style="height:300px" />
</h:panelGroup>
<h:commandButton value="Display Chart" action="#{chartBean.createCategoryModel}">
<f:ajax render="panel"/>
</h:commandButton>
</h:body>
现在,当我运行此代码时,按钮不起作用。
另一件事,如果我改变我的代码,比如删除面板,只是在条形图上渲染,然后
<f:ajax render="basic"/>
把它放在里面,<form>
那么它会抛出NullPointerException
. 因为它呈现图表并期望来自chartBean.categoryModel
. 现在 AFAIK 它不应该因为 ajax 而被渲染。
我无法理解 JSF 中的 ajax 行为。我也试过<f:ajax execute="@form" render="basic">
,但也没有用。这是如何引起的,我该如何解决?