我使用带有ICEpush的ICEfaces将一些数据推送到浏览器。
然而,它并不像计划的那样工作:它不做AJAX,它只是像其他非AJAX操作那样调用动作并从动作返回。
我使用的是最新的ICEfaces和ICEpush版本,以及TomaHawk7和JSF2。
它既不适用于Servlet 2.5,也不适用于Servlet 3.0。
以下是我的bean (视图作用域)的重要部分:
public AjaxTest() {
PushRenderer.addCurrentSession(PUSH_GROUP);
}
public void addText() throws InterruptedException {
for(int i = 0; i < 5; i++) {
lines.add("line " + i);
PushRenderer.render(PUSH_GROUP);
Thread.sleep(1000);
}
}这是我表单的一小段:
<h:panelGroup>
<h:dataTable id="ajaxTestTable" value="#{ajaxTest.lines}" var="line">
<h:column>
<h:outputText value="#{line}" />
</h:column>
</h:dataTable>
<h:commandButton id="startAjax" value="Start"
action="#{ajaxTest.addText}" />
</h:panelGroup>我错过了什么吗?谢谢!
发布于 2011-05-24 23:35:12
ICEfaces 2.0尚未与MyFaces集成。你用包含的Mojarra .jar文件试过你的应用程序了吗?
发布于 2011-07-19 21:44:06
我只熟悉Icefaces 1.8,但在我看来你的命令按钮没有启用ajax。此外,您还必须使用actionListener而不是操作
您可以使用icefaces命令按钮:
<ice:commandButton id="startAjax" value="Start"
actionListener="#{ajaxTest.addText}"/>或者JSF2 ajax标记:
<h:commandButton id="startAjax" value="Start">
<f:ajax listener="#{ajaxTest.addText}"/>
</h:commandButton>发布于 2011-05-25 00:00:41
你有没有可以验证代码的开发工具?至少在ICEPush的Vaadin版本上,你不能相信他们的例子。在他们的官方演示上,有弃用的代码,在他们的聊天中,他们给出了从另一个星球导入的代码和正确的代码。
我的Eclipse告诉我,许多导入是错误的,并且代码在某些函数上有不推荐使用的标记。那里的这些人发展得太快了,以至于他们的文档已经永久过时了。因此,请仔细阅读您的工具对代码的说明!
https://stackoverflow.com/questions/6096238
复制相似问题