2009-05-28 104 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可以被@注入到一个服务类。