Возможно, это не большая проблема, но я пытаюсь оптимизировать свое приложение.Это приложение jee6 с фреймворком jsf2.0, primefaces2.1 и glassfish3.1.
У меня есть ситуация, когда при щелчке по commandLink мне нужно выполнить что-то на стороне сервера, а затем перенаправить на другую страницу с некоторымиполучить параметры.И я решил это с помощью p: commandLink с вложенным f: param.Действие возвращает строку, которая является результатом навигации на другую страницу, определенную в Face-Context с помощью redirect и include-view-params = "true".И все работает отлично.НО, когда я посмотрел в трассировке, я увидел, что конструктор управляемого компонента вызывается дважды после рендеринга целевой страницы (вторая страница).Управляемый bean-компонент загружает некоторые данные из базы данных дважды, которые я хотел бы получить
Код:
page1:
...
<p:commandLink value="Go to page2" action="#{bean1.doSmthBefore}">
<f:param name="param1" value="1"/>
</p:commandLink>
...
bean1:
@ManagedBean
@ViewScoped
public class Bean1{
public void doSmthBefore(){
....
return "page2";
}
}
page2:
...
<f:metadata>
<f:viewParam name="param1" value="#{bean2.param1}"/>
</f:metadata>
...
bean2:
@ManagedBean
@ViewScoped
public class Bean2{
String param1;
public Bean2(){
sout("Constructor") //<-trace
}
//geters seters...
}