Вы передаете объект в компонент?Объекты передаются по ссылке, поэтому, если ваш компонент имеет атрибут, который принимает объект и что-то с ним делает, ваш контроллер внешней страницы сможет получить доступ к измененным значениям.
Если вы передадите оболочкуобъект, т.е.если ваш пользовательский интерфейс позволяет пользователю выбрать учетную запись.
Class SelectedAccount
{
public Account theAccount {get;set;}
}
Компонент:
<apex:component controller="ComponentController">
<apex:attribute type="SelectedAccount" name="userSelectedAccount" description="Selected Account" assignTo="{!selectedAccount}"
</apex:component>
Контроллер компонентов:
public class ComponentController
{
public selectedAccount;
public void ComponentController(){}
public PageReference selectAccountFromUI(Account selected)
{
selectedAccount.theAccount = selected;
return null;
}
}
Страница Использование компонента:
<c:MyAccountComponent userSelectedAccount="{!instanceOfSelectedAccount}"/>
Это позволит вам назначить выбранную пользователем учетную запись экземпляру объекта оболочки, который принадлежит внешнему контроллеру.Затем вы можете ссылаться:
instanceOfSelectedAccount.theAccount
с вашего основного контроллера Visualforce Pages.