Все действия используют target = "_ blank" после нажатия кнопки commandButton с этим атрибутом - PullRequest
0 голосов
/ 29 мая 2018

У меня есть ах: commandButton с атрибутом onclick = "this.form.target = '_ blank'" для открытия PDF-файла в новой вкладке, и он работает отлично, но после этого действия все остальные действия (h: commandLink или h: commnadButton) без целевого атрибута, также открываются в новой вкладке.

фрагмент из файла xhtml

<h:form>
 <rich:panel header="User Logs Data">
   <h:panelGrid id="ad" columns="2" columnClasses="fieldlabel,fieldvalue">

      <h:outputText value=" Branch:" />
      <h:selectOneMenu value="#{userLogsInformationController.branch}"
                            converter="#{bankBranchConverter}"
                            disabled="#{not sec:areAllGranted('SHOW_ALL_OUTWARD')}"
                            onchange="submit()"
                            valueChangeListener="#{userLogsInformationController.handleBranchChange}"
                            style="width : 250px;">
     <f:selectItem itemLabel="[Select Branch]"/>
     <f:selectItems value="#{userLogsInformationController.branches}" 
                    var="br" itemLabel="#{br.name}"/>
     </h:selectOneMenu>
  </h:panelGrid>
  <h:panelGrid columns="2">
     <h:commandButton value="Report">
         <f:ajax event="click" execute="@form" listener="#{userLogsInformationController.showReport}" render="@form" />
     </h:commandButton>
     <h:commandButton value="Download" 
                      actionListener="#{userLogsInformationController.downloadReport}"
                      onclick="this.form.target='_blank'" ajax = "false"
                      disabled="#{userLogsInformationController.notAbleToPrint}"/>

     <rich:messages id="messages" style="padding-left:40px; margin-top: 5px"/>
   </h:panelGrid>
  </rich:panel>
 </h:form>

Я исследовал некоторые проблемы и обнаружил, что впервые,цель равна _blank, она добавлена ​​в форму как атрибут.Во второй раз target = "_ blank" по-прежнему присутствует в форме, хотя этого не должно быть (целевой параметр на данный момент не определен).

Я не получаю решение и не могу добавить метод встр.Нужно руководство по устранению этой проблемы.

1 Ответ

0 голосов
/ 29 мая 2018

Этот ответ получен из другого источника .Когда мы ограничиваем цель только одним действием, нам нужно получить форму в ее начальном состоянии.С помощью действия oncklick мы устанавливаем цель формы на страницу _blank.После щелчка страница открывается на новой вкладке / странице (запускает событие действия).Наконец, запускается действие onblur и снова устанавливается форма в исходное состояние (остальные кнопки будут открываться на странице _self). С помощью этого кода мы можем ограничиться открытием только новой кнопки ah: commandbutton на новой странице

<h:commandButton value="Download"
                 actionListener="#{userLogsInformationController.downloadReport}"
                 onclick="this.form.target='_blank'"
                 onblur="this.form.target='_self'"
                 ajax = "false" disabled="#{userLogsInformationController.notAbleToPrint}"/>
...