将JQuery与JSF集成

我有一个主要使用Richfaces的JSF应用程序。 我想介绍一个function更丰富的网格控件,比如基于jQuery的jqgrid 。 是否可以从JSF支持bean获取JSON数据? 如果没有,是否有其他方法?

这里可能有几种选择。

  1. Bean方法可以返回一个String,它只是一个JSON字符串

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

    您可以使用JsonLib将Java对象转换为Json。

  2. 使用不同的Servlet为Grid请求提供服务

    我会推荐这种方法。 原因是你可以拥有一个JSon请求,然后是一个JSON响应,而不必担心JSF。 我不认为当你使用jQuery时,你需要使用JSF。 所以不要在其中混合JSF,你可以直接绕过JSF层来解决这个问题。 因为它在这里没有意义。这是我使用的方法。 我可以与您分享代码来实现这一目标。

  3. 使用JSF阶段侦听器返回Json Response。

希望能帮助到你

您还可以将JAX-RS用于返回JSON对象的REST服务。 JAX-RS和JSF都是Java EE 6的一部分。此外,通过新的JEE6dependency injection(CDI),您可以轻松地跨JSF托管bean和JAX-RS服务共享会话状态 – JSF托管bean可以@Inject进入服务类。