2009-05-28 96 views
3

我有一個主要使用Richfaces的JSF應用程序。我想介紹一個功能更豐富的網格控件,比如基於jQuery的jqgrid。是否有可能從JSF支持bean獲取JSON數據?如果沒有,是否有其他方法?將JQuery與JSF集成

回答

3

這裏可能有幾個選項。

  1. Bean方法可以返回一個字符串,它只不過是一個JSON字符串

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

    您可以使用JsonLib轉換Java對象到JSON。

  2. 使用不同的Servlet來服務網格請求

    我會推薦這種方法。原因是你可以有一個JSon請求,然後是一個JSON響應,而不會打擾JSF。因爲我不認爲你使用jQuery時需要使用JSF。所以不要混入JSF,你可以直接繞過JSF層來處理這種情況。因爲它沒有意義。這是我使用的方法。我可以與您分享代碼來實現此目的。

  3. 使用JSF Phase Listener來返回Json響應。

希望它可以幫助

+0

你能分享你的代碼嗎? (如你在2處寫的)。 – user590586 2012-06-11 09:02:21

0

你也可以使用JAX-RS的REST服務返回JSON對象。 JAX-RS和JSF都是Java EE 6的一部分。此外,通過新的JEE6依賴注入(CDI),您可以輕鬆地在JSF受管bean和JAX-RS服務之間共享會話狀態 - JSF受管bean可以被@注入到一個服務類。