我还没有弄清楚如何动态调用/调用一个方法,而不使用@ postconstruct方法并初始化@页面创建。
此刻,我只是想让priface p:poll的例子工作。我现在把这个方法放在它自己的类中,以保持它的干净和简单。如下所示:
@ManagedBean(name="counterBean")
@SessionScoped
public class CounterBean implements Serializable {
private int count;
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public void increment(ActionEvent actionEvent) {
setCount(getCount() + 1);
}
}
然后是xhtml代码:
<h:form>
<h:outputText id="txt_count" value="#{counterBean.count} " />
<p:poll interval="3" listener="#{counterBean.increment}" update="txt_count"/>
</h:form>
netbeans内部的智能感知告诉我#{counterBean的"增量"部分。increment}是一个"未知属性",即它无法找到该方法。那么,如何让JSF从xhtml中识别和调用这个方法呢?
在经历了一些挠头之后,p:poll组件在对primefaces演示进行了轻微调整后开始工作;手册。将p:poll侦听器更改为actionListener:
<h:form>
<h:outputText id="txt_count" value="#{counterBean.count} " />
<p:poll interval="3" actionListener="#{counterBean.increment}" update="txt_count"/>
</h:form>
还要确保你的html页面/模板被<f:view contentType="text/html">
标签包围
希望这能帮助到一些人&感谢BalusC在调试过程中的帮助。