Вы можете просто заставить кнопку вызывать действие, возвращающее ссылку на новую страницу:
<!-- in page -->
<apex:commandButton action="{!PrintPage}" value="Print"/>
И тогда в вашем контроллере вы можете создать ссылку на страницу и добавить любые параметры, которые вам нужны:
// in controller
public Pagereference PrintPage()
{
Pagereference pr = Page.ThePrintPage;
pr.setRedirect(true);
pr.getParameters().put('searchFilter1', 'someValue');
pr.getParameters().put('searchFilter2', 'someOtherValue');
return pr;
}
Затем в контроллере для другой страницы вы можете просто прочитать эти параметры и использовать их в своем запросе:
string strFilter1 = ApexPgaes.currentPage().getParameters().get('searchFilter1');
Если страница очень похожа, вы можете просто захотетьпереключите параметр renderAs
в теге страницы, используя связанную переменную, и пусть ваше действие просто переключит это - вы, вероятно, захотите отключить видимость других частей страницы, но это избавит вас от повторного выполнения запроса и т. д.Конечно, если вам нужны две страницы, вы всегда можете упростить задачу, выполнив логику поиска в третьем классе, который содержит весь общий код.