2013-11-13 4 views
0

У меня есть страница, на которой вы выбираете значение, и генерирует PDF-файл. На SelectOneMenu У меня есть значения, в которых вы можете выбрать отправку по электронной почте PDF-файла или открыть его на новой вкладке.h: commandLink target, выполненный до действия метода

вот моя проблема:

<h:commandLink action="#{Reports.filter}" value="Create" styleClass="linkbutton" target="#{Reports.action eq 0? '_blank':'' }"/> 

Открыть в новой вкладке = 0, электронная почта = 1, такое же Page = 2. В моем методе я чек, чтобы увидеть, если мой список пуст, если он пусто действие получает значение 2, если он не пуст, действие остается исходным значением, которое было выбрано. Поэтому, если мой список пуст, страница по-прежнему открывает новую вкладку, чтобы попытаться отправить почту, где она должна «Одинаковая страница», чтобы отобразить мое уведомление.

Как я могу установить это, чтобы дождаться завершения метода Reports.filter, а затем получить целевое значение?

Я также использую richfaces.

+0

Какой у вас вариант jsf? Какова область вашего боба? –

ответ

0

Если я правильно понял, ваш фрагмент кода должен выглядеть следующим образом:

<h:selectOneMenu id="actionSelector" value="#{Reports.action}"> 
    <f:selectItem itemValue="0" itemLabel="Open in new tab" /> 
    <f:selectItem itemValue="1" itemLabel="Email PDF" /> 
</h:selectOneMenu> 
<a4j:commandLink action="#{Reports.filter}" oncomplete="reportAction();" /> 

<h:outputScript> 
    function reportAction() { 
     if (jQuery("select[id$='actionSelector']").val() === 0) { 
      window.open(...); 
     } 
    } 
</h:outputScript> 

Т.е., так как target визуализируется перед тем пользователь даже не нажимает на ссылку, у вас нет шансов изменить это в нужное время ,

Смежные вопросы