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)}">
Другие вопросы по тегам