2009-05-28 16 views
3

Ich habe eine JSF-Anwendung, die hauptsächlich Richfaces verwendet. Ich möchte ein funktionsreicheres Grid-Steuerelement wie das jQuery-basierte jqgrid vorstellen. Ist es möglich, JSON-Daten von einer JSF-Backing-Bean zu erhalten? Wenn nicht, gibt es einen alternativen Ansatz?JQuery mit JSF integrieren

Antwort

3

Hier könnte es einige Optionen geben.

  1. Bean Methode kann einen String zurückgeben, die nichts anderes als ein JSON String ist

    public String getSearchResult(){ 
        results = SearchService.getResults(); 
        return JsonHelper.convertToJson(results); 
    } 
    

    Sie JsonLib verwenden können, um zu konvertieren Java zu JSON-Objekte.

  2. eine andere Servlet verwenden Service Grid Requests

    Ich werde diesen Ansatz empfehlen. Grund dafür ist, dass Sie eine JSon-Anfrage und dann eine JSON-Antwort haben können, ohne JSF zu belästigen. Da ich nicht denke, wenn Sie jQuery verwenden, müssen Sie JSF verwenden. Also mischen Sie nicht JSF darin und Sie können JSF Schicht für diesen Fall direkt umgehen. Da es hier keinen Sinn macht. Dies ist der Ansatz, den ich verwendet habe. Ich kann den Code mit Ihnen teilen, um dies zu erreichen.

  3. Verwenden Sie einen JSF-Phasenlistener, um die Json-Antwort zurückzugeben.

Hoffe, es hilft

+0

können Sie Ihren Code teilen, dies zu tun? (wie du bei 2 geschrieben hast). – user590586

+0

tun Sie jede Art von Beispiel dafür? – user590586

+0

@Pavitar Singh Könnten Sie bitte einige Beispiel für den zweiten Punkt Ihnen erwähnten bitte –

0

Sie auch JAX-RS für REST-Services, die JSON zurückgeben Objekte nutzen könnten. JAX-RS und JSF sind beide Teil der Java EE 6. Zusätzlich mit neuen JEE6 Dependency Injection (CDI) Sie leicht Sitzungszustand über beide JSF Bohnen verwaltet gemeinsam nutzen können und JAX-RS-Dienstleistungen - eine JSF Bean verwaltet @ Inject'ed sein kann, in eine Serviceklasse.