Если вы создаете что-то вроде корзины для покупок или «мастера», в котором вам нужно хранить переменные контроллера в контексте от одного просмотра страницы к другому, то лучший способ сделать это в VisualForce - это использовать тот же контроллер.
Когда пользователь отправляет форму (через actionFunctions, commandButtons или commandLinks и т. Д.), И ваш контроллер возвращает ссылку на страницу, состояние просмотра сохраняется, если новая страница визуальной силы использует тот же контроллер.
Таким образом, вы можете, например, попросить пользователя ввести свое имя и адрес электронной почты с помощью тегов apex: inputField на первой странице. Они переходят ко второй странице, которая использует тот же контроллер, что и первая страница, и страница может ссылаться на те же переменные контроллера. По сути, контроллер все еще находится в области действия, как и все переменные, которые были обновлениями.
Пример:
Страница первая:
<apex:page controller="myController">
Please enter your name <apex:inputText value="{!shopper_name}"/>
<br/>
<apex:commandButton action="{!pageTwo}" value="Click for page two"/>
</apex:page>
Страница вторая:
<apex:page controller="myController">
You entered: <apex:outputText value="{!shopper_name}" />.
</apex:page>
Контроллер:
public class myController {
public string shopper_name { get; set; }
public myController() {
shopper_name = null;
}
}