使用richfaces玩转json

richfaces封装了jQuery和json,因此我们在richfaces项目中,可以轻松使用这两个ajax元素,而无需第三方的jar包

在richfaces下使用json无需额外请求json提供者页面,可以通过a4j:jsFunction控件轻松实现异步请求。

 

流程(请参考附件中的代码):

1.jsf页面通过js向server发起请求:

比如,通过一个anchor的点击,调用js方法:

<a href="#" οnclick="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);

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值