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 3

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 или, возможно, попробовать использовать другой компонент, поддерживающий этот вид реализации.

Удачи!