锁定老帖子 主题:使用richfaces玩转json
精华帖 (0) :: 良好帖 (0) :: 新手帖 (11) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-10
richfaces封装了jQuery和json,因此我们在richfaces项目中,可以轻松使用这两个ajax元素,而无需第三方的jar包 。 在richfaces下使用json无需额外请求json提供者页面,可以通过a4j:jsFunction控件轻松实现异步请求。
流程(请参考附件中的代码): 1.jsf页面通过js向server发起请求: 比如,通过一个anchor的点击,调用js方法: <a href="#" onclick="loadByJson('4')">Gennaro Gattuso</a>
2.a4j:jsFunction控件实现该js方法,接收请求,并提交给java类实例(jsonTest)的指定处理方法(getPlayer): <a4j:jsFunction name="loadByJson" action="#{jsonTest.getPlayer}" 如果有必要,可以向server传递参数: <a4j:actionparam name="Param1" assignTo="#{jsonTest.id}"></a4j:actionparam>
3.调用java类实例(jsonTest)的指定获取json数据的方法(jsonData): data="#{jsonTest.jsonData}" 这里,java代码使用的json是richfaces自带的,这正是其方便之处: org.richfaces.json.JSONObject dataToJSON = new JSONObject(); dataToJSON.put("id", data.get("id")); dataToJSON.put("name", data.get("name")); dataToJSON.put("number", data.get("number")); dataToJSON.put("age", data.get("age"));
4.刷新jsf界面: oncomplete="updateFields(data);"
5.jQuery的selector处理这个刷新工作: function updateFields(data){ jQuery('#datadiv').html(data); var player = eval("("+ data +")"); jQuery('#id').html(player.id); jQuery('#name').html(player.name); jQuery('#number').html(player.number); jQuery('#age').html(player.age); }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 2146 次