Я решил проблему, используя статические переменные. Datatable А использует объект DataModel, который заполняется таким образом в управляемом компоненте:
dataModel=new ListDataModel(globalDD.getDetailsList());
где globalDD в управляемом компоненте:
private GlobalDocumentDetails globalDD;
public GlobalDocumentDetails getGlobalDD() {
return SessionBeanUtility.getGlobalDD();
}
public void setGlobalDD(GlobalDocumentDetails globalDD) {
this.globalDD = globalDD;
}
И SessionBeanUtility.getGlobalDD() является
public static GlobalDocumentDetails getGlobalDD(){
if (FacesUtil.getPortletSession().getAttribute(GLOBAL_DD_BEAN_KA, PortletSession.APPLICATION_SCOPE) == null)
{
new GlobalDocumentDetails();
FacesUtil.getPortletSession().setAttribute(GLOBAL_DD_BEAN_KA, new GlobalDocumentDetails(), PortletSession.APPLICATION_SCOPE);
}
return (GlobalDocumentDetails)FacesUtil.getPortletSession().getAttribute(GLOBAL_DD_BEAN_KA, PortletSession.APPLICATION_SCOPE);
}
В состав данных B входят элементы корзины покупок, и тележка является статическим объектом. Я использую код, который я написал в вопросе в методах actionListeners двух данных для обновления обоих.