target= "blank" in p: menuitem не открывает новую вкладку
Я использую primefaces 5.1, liferay 6.2.0-ga2 и JSF2. У меня есть страница с кнопкой. При нажатии правой кнопки мыши отображается контекстное меню с одним меню. Этот menuitem должен открыть новую вкладку, но этого не происходит.
<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";
}
Как я могу это исправить?
1 ответ:
Существует проблема, помеченная как "Won'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>
В худшем случае вы должны попытаться переопределить поведение Primefaces p:menuitem default или, возможно, попробовать использовать другой компонент, поддерживающий этот вид реализации.
Удачи!