JSF: Использование Ajax Push с ледяными пальцами (IcePush)

StackOverflow https://stackoverflow.com/questions/6096238

  •  09-09-2020
  •  | 
  •  

Вопрос

Я использую ледяные пальцы с ледяной печностью, чтобы нажать на некоторые данные в браузер.

Тем не менее, он не работает как планируемый: он не работает Ajax, он просто вызывает действие и возвращает от действия, подобное любому другому неайаксу.

Я использую новейшие ледяные пальцы и версии ледяных и ледяных версий и Tomahawk 7 и JSF 2.

Работает с ни сервлетом 2.5, ни сервлетом 3.0.

Это важные части моей фасоли (вид на колебания):

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>
.

Я что-то пропустил?Спасибо!

Это было полезно?

Решение

Icefaces 2.0 еще не интегрирован с Myfaces.Вы пробовали приложение с включенными файлами Mojarra.

Другие советы

Я знаком только с ледяными помехами 1.8, но мне кажется, что вам команда, не включена Ajax.Также вы должны использовать ActionListener вместо действия

Вы можете использовать кнопку команды Icefaces:

<ice:commandButton id="startAjax" value="Start" 
       actionListener="#{ajaxTest.addText}"/>
.

или jsf 2 ajax Теги:

<h:commandButton id="startAjax" value="Start">
    <f:ajax listener="#{ajaxTest.addText}"/>
</h:commandButton>
.

У вас есть какой-то инструмент разработки, который может подтвердить код?По крайней мере, на Vaadin версию льда, которую вы не могли доверять своими примерам.На их официальной демонстрационной демонстрации был устаревший код и в их чате, они дали код, где импорт был с другой планеты с правильными.

Мое затмение сказала, что многие импорта были неправы, и код устарел отметки на некоторые функции.Эти парни там так быстро развиваются, что их документы постоянно устарели.Итак, внимательно прочитайте, какой ваш инструмент говорит о коде!

У меня также есть проблема с интеграцией ледовых помещений (для использования push) с приложением, которое уже использует Richfaces. Но можно интегрировать ледяную печушку непосредственно с практически любым java-веб-приложением (с API сервлета). Вы можете увидеть более подробную информацию о http:// Achorniy. WordPress.com/2012/02/29/icepush-integration-to-web-aplication/

Идея состоит в том, чтобы использовать JavaScript-API (или jQuery-API), предоставляемый IcePush. Итак, ваша страница с JavaScript-API зарегистрируйтесь в качестве слушателя, чтобы нажать уведомления и в обратном вызове, вы можете вызвать любые функции JavaScript для обновления вашей страницы. В примере Richfaces вы можете использовать ajaxupdatefunction (), который фактически поддерживается <a4j:jsFunction name="ajaxUpdateFunction" action="#{myBean.update} reRender="updatedComponent(s)" ajaxSingle="true"/> или выполнять AJAX-запрос с jQuery. В вашем случае (JSF-2.0) я думаю, что вы можете позвонить в jsf.ajax.request(this, event, {render:'ajaxTestTable'}) для обновления того, что вы хотите (примеры http://andyschwartz.wordpress.com/2009/07/31/whats-new-in-jsf-/ )

Все, что вам нужно сделать на стороне сервера - это зарегистрировать сервлете IcePush и инициализируйте соединение на льду на стороне клиента с JavaScript API.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top