JSF:DataModel 中如何用单选

这里我没有采用onchange事件,而是通过onclick事件触发action,这样DataModelSelection会自动注入。

note:但是DataModelSelection在reRender的时候有个问题,如果直接用DataModelSelection绑定的bean去刷新其他区域,一切正常;如果想刷新DataModel的表单,这个DataModelSelection就不会更新,还是以前的数据,估计是出于对DataModel的数据保护。所以这时候我新创建了一个bean,showPgsDataBean,在触发action的时候给showPgsDataBean赋值,这样再刷新表单或其他区域就一切正常了。

 

以下代码供参考。

 

xhtml代码:


    <rich:column>
     <h:selectOneRadio value="#{planDetailAction.selectedPlanName}">
      <f:selectItem itemValue="#{pgsDataBean.planInfo.basicPlan}" />
                     <a:support event="onclick" ajaxSingle="true" action="#{planDetailAction.selectPlanProposal()}" reRender="planList,planDetail"/>
                    </h:selectOneRadio>
    </rich:column>

 

java代码:


 @DataModel("pgsDataBeanList")
 private List<PgsDataBean> pgsDataBeanList = new ArrayList<PgsDataBean>();
 
 @DataModelSelection("pgsDataBeanList")
 private PgsDataBean selectedPgsDataBean;


 // ui binding
 @In(required=false)
 @Out(required=false)
 private PgsDataBean showPgsDataBean;


 public void selectPlanProposal() {
  log.debug("selectedPlanName =#0", selectedPlanName);
  log.debug("#0.selectPlanProposal() selectedPgsDataBean.planInfo.basicPlan=#1", this, selectedPgsDataBean.getPlanInfo().getBasicPlan());
  this.showPgsDataBean=selectedPgsDataBean;
 }

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值