target="_blank" в p:menuitem не открывает новую вкладку
Я использую основные лица 5.1, liferay 6.2.0-ga2 и JSF2. У меня есть страница с кнопкой. Когда я нажимаю правой кнопкой мыши, отображается контекстное меню с одним пунктом меню. Этот пункт меню должен открыть новую вкладку, но это не так.
<p:commandButton id="viewUnassignedCase"
action="application-container" styleClass="icon fa fa-eye">
<f:setPropertyActionListener
target="#{applicationManagementBean.application}"
value="#{unassignedCase}" />
<f:setPropertyActionListener
target="#{applicationManagementBean.activeIndexTab}" value="0" />
</p:commandButton>
<p:contextMenu for="viewUnassignedCase" id="tableMenu"
widgetVar="tableMenu">
<p:menuitem value="#{caseList['caseManagement.case.newtab']}"
target="_blank"
action="#{applicationManagementBean.openNewTabDetail(unassignedCase)}">
</p:menuitem>
</p:contextMenu>
и боб
public String openNewTabDetail(final FlexibleDomain application)
{
setApplication(application);
return "application-container";
}
Как я могу это исправить?
2 ответа
Для этого поведения есть проблема, помеченная как "W'tFix" в GoogleCode Primefaces (p:menuItem не открывает новое окно с помощью действия).
В вашем случае вам нужно будет адаптировать навигацию на основе действий для навигации на основе URL.
Я не могу понять, как заставить это работать в вашем проекте, но лучше всего попробовать что-то вроде этого:
<p:contextMenu for="viewUnassignedCase" id="tableMenu"
widgetVar="tableMenu">
<p:menuitem value="#{caseList['caseManagement.case.newtab']}"
target="_blank"
url="www.yoururl.com/yourdesiredpath">
</p:menuitem>
</p:contextMenu>
В худшем случае вы должны попытаться переопределить поведение по умолчанию для p:menuitem в Primefaces или, возможно, попробовать использовать другой компонент, поддерживающий реализацию такого рода.
Удачи!
Вы можете добавить атрибут
ajax="false"
вместе с
target="_blank"
кp:menuitem
. Это должно выглядеть так:
<p:menuitem
value="#{caseList['caseManagement.case.newtab']}"
target="_blank"
ajax="false"
action="#{applicationManagementBean.openNewTabDetail(unassignedCase)}">