日期:2014-05-16 浏览次数:20320 次
1. Tab标签的使用
?? ?用法:
???<p:tabView id="tabView" dynamic="true" cache="false">
<p:ajax event="tabChange" listener="#manageTableBean.onReportSettingChange}" update="tableList" />
<p:tab id="modelTab" title="第一步:模型">content
</p:tab><p:tab id="modelTab2" title="第二步:模型">content </p:tab>
</p:tabView>
??在ManageTableBean中需要 存在onReportSettingChange(TabChangeEvent event)
?
public void onReportSettingChange(TabChangeEvent event) { FacesMessage msg = new FacesMessage("Tab Changed", "Active Tab: " + event.getTab().getClientId()); if(event.getTab().getClientId().lastIndexOf("tableTab")>0){ .............//省略 } }
?但是如果在modelTab 中嵌套一个tabView时,在modelTab2和modelTab切换时会导致,
调用内层次嵌套的方法(假如内层的lisener=“#manageTableBean.onReportSettingChange2}”)的
onReportSettingChange2.
?
而onReportSettingChange2方法的参数为AjaxBehaviorEvent 的子类TabChangeEvent。
框架会提示找不到方法的异常。解决办法:
内层方法重载一个不同参数的。
代码如下
?
public void onReportSettingChange2(AjaxBehaviorEvent event) { FacesMessage msg = new FacesMessage("Tab Changed", "Active Tab: " + event.getTab().getClientId()); if(event.getTab().getClientId().lastIndexOf("tableTab")>0){ .............//省略 } } public void onReportSettingChange2(TabChangeEvent event) { }?
?
?
?