首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSF:结合使用AJAX push和ICEfaces (ICEpush)

JSF:结合使用AJAX push和ICEfaces (ICEpush)
EN

Stack Overflow用户
提问于 2011-05-23 18:54:08
回答 4查看 3.4K关注 0票数 3

我使用带有ICEpush的ICEfaces将一些数据推送到浏览器。

然而,它并不像计划的那样工作:它不做AJAX,它只是像其他非AJAX操作那样调用动作并从动作返回。

我使用的是最新的ICEfaces和ICEpush版本,以及TomaHawk7和JSF2。

它既不适用于Servlet 2.5,也不适用于Servlet 3.0。

以下是我的bean (视图作用域)的重要部分:

代码语言:javascript
复制
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);                     
    }
}

这是我表单的一小段:

代码语言:javascript
复制
    <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>

我错过了什么吗?谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-24 23:35:12

ICEfaces 2.0尚未与MyFaces集成。你用包含的Mojarra .jar文件试过你的应用程序了吗?

票数 2
EN

Stack Overflow用户

发布于 2011-07-19 21:44:06

我只熟悉Icefaces 1.8,但在我看来你的命令按钮没有启用ajax。此外,您还必须使用actionListener而不是操作

您可以使用icefaces命令按钮:

代码语言:javascript
复制
<ice:commandButton id="startAjax" value="Start" 
       actionListener="#{ajaxTest.addText}"/>

或者JSF2 ajax标记:

代码语言:javascript
复制
<h:commandButton id="startAjax" value="Start">
    <f:ajax listener="#{ajaxTest.addText}"/>
</h:commandButton>
票数 1
EN

Stack Overflow用户

发布于 2011-05-25 00:00:41

你有没有可以验证代码的开发工具?至少在ICEPush的Vaadin版本上,你不能相信他们的例子。在他们的官方演示上,有弃用的代码,在他们的聊天中,他们给出了从另一个星球导入的代码和正确的代码。

我的Eclipse告诉我,许多导入是错误的,并且代码在某些函数上有不推荐使用的标记。那里的这些人发展得太快了,以至于他们的文档已经永久过时了。因此,请仔细阅读您的工具对代码的说明!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6096238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档