Domanda

Sto usando iCefeces con Icepush per spingere alcuni dati sul browser.

Tuttavia, non funziona come pianificato: non fa unjax, invoca solo l'azione e ritorna dall'azione come qualsiasi altra azione non Ajax fa.

Sto usando le ultime versioni Icefaces e Icepush e Tomahawk 7 e JSF 2.

funziona con né servlet 2.5 né servlet 3.0.

Queste sono le parti importanti del mio fagiolo (vista scopata):

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);                     
    }
}
.

E questo è uno snippet della mia forma:

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

Mi è mancato qualcosa?Grazie!

È stato utile?

Soluzione

Icefaces 2.0 non è ancora integrato con myface.Hai provato la tua applicazione con i file MOJARRA .JAR incluso?

Altri suggerimenti

Ho familiarità con iCefeces 1.8, ma mi sembra che il tuo comando non sia abilitato Ajax.Inoltre devi usare un actionlister invece di un'azione

È possibile utilizzare il pulsante Comando ICeFaces:

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

o il JSF 2 Ajax Tags:

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

Hai un po 'di strumento di sviluppo che può convalidare il codice?Almeno sulla versione Vaadin di Icepush non si potrebbe fidarsi dei loro esempi.Sulla loro dimostrazione ufficiale ci fu il codice deprecato e sulla loro chat hanno dato il codice in cui le importazioni provenissero da un altro pianeta con quelle corrette.

La mia eclipse ha detto che molte importazioni erano errate e il codice avevano i segni deprecati su alcune funzioni.Questi ragazzi si sviluppano così in fretta che i loro documenti siano definitivamente fuori data.Quindi, leggi attentamente quale dice il tuo strumento sul codice!

Ho anche il problema con l'integrazione di icefece (utilizzare Push) con l'app che utilizza già RichFaces. Ma è possibile integrare il icepush direttamente con quasi tutte le applicazioni Java-Web (con API del Servlet). Puoi vedere maggiori dettagli su http:// Achorniy. wordpress.com/2012/02/29/icepush-integrazione-To-Web-application/

L'idea è di utilizzare JavaScript-API (o JQuery-API) fornito da Icepush. Quindi, la tua pagina con JavaScript-API si registra come ascoltatore per spingere le notifiche e nella callback è possibile chiamare le funzioni JavaScript per aggiornare la tua pagina. Nell'esempio di Richfaces è possibile utilizzare AjaxUpdateFunction () che è effettivamente supportato da <a4j:jsFunction name="ajaxUpdateFunction" action="#{myBean.update} reRender="updatedComponent(s)" ajaxSingle="true"/> o esegue la richiesta AJAX con JQuery. Nel tuo caso (JSF-2.0) Penso che tu possa chiamare jsf.ajax.request(this, event, {render:'ajaxTestTable'}) per aggiornare ciò che desideri (esempi http://andyschwartz.wordpress.com/2009/07/31/Quals-new-in-jsf-2/ )

Tutto quello che devi fare sul lato server - è registrare il servlet ICEPUSH e inizializzare la connessione ICEPUSH sul lato client con API JavaScript.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top