Я использую кнопку p: с действием onclick. (Я не могу перейти к р: CommandButton, из-за унаследованным итоговому навигации в лицах-config.xml и пользовательская навигация истории в БД):p: кнопка с onclick javascript hook
<p:remoteCommand name="unlock_tt" actionListener="#{ttEntityMBean.unlock()}"/>
<p:button value="#{msgs['button.ok']}" outcome="#{ttEntityMBean.navigationMenuItemToRedirect.navigationRule}" onclick="unlock_tt()"/>
порожденном primefaces Javascript выглядит как
onclick="unlock_tt(); window.open(....)"
И после нажатия кнопки unlock_tt() в браузере, инициированном, но немедленно разбитого по переадресации страницы, так что поддерживаемый java-метод не выполнялся. Должен ли я сделать unlock_tt() или java call async, чтобы убедиться, что он будет выполнен до того, как браузер покинет страницу?
Upd: Я имею в виду использовать р: CommandButton, если можно получить на просмотр идентификатор programically, как в этом вопросе:
Programmatically get navigation case <to-view-id> from faces-config.xml by outcome
<p:commandButton action="#{ttEntityBean.unlock()}"/>
public String unlock() {
//some business logic
return OutcomeResolverHelper.getRuleFor(navigationMenuItemToRedirect.navigationRule)
}
Это должно уменьшить число из запросов