我有一个主要使用Richfaces的JSF应用程序。我想介绍一个功能更丰富的网格控件,例如基于jQuery的jqgrid。是否有可能从JSF支持bean获取JSON数据?如果没有,是否有替代方法?
答案 0 :(得分:3)
这里可能有几种选择。
Bean方法可以返回一个只有JSON字符串
的字符串public String getSearchResult(){
results = SearchService.getResults();
return JsonHelper.convertToJson(results);
}
您可以使用JsonLib将Java对象转换为Json。
使用其他Servlet为网格请求提供服务
我会推荐这种方法。原因是你可以有一个JSon请求然后一个JSON响应,而不需要麻烦的JSF。我不认为当你使用jQuery时,你需要使用JSF。所以不要混合使用JSF,你可以直接绕过JSF层。因为它在这里没有意义。这是我使用的方法。我可以与您分享代码来实现这一目标。
使用JSF阶段侦听器返回Json Response。
希望有所帮助
答案 1 :(得分:0)
您还可以将JAX-RS用于返回JSON对象的REST服务。 JAX-RS和JSF都是Java EE 6的一部分。此外,通过新的JEE6依赖注入(CDI),您可以轻松地跨JSF托管bean和JAX-RS服务共享会话状态 - JSF托管bean可以@Inject进入服务类。