Метод бина вызывается случайным образом из свойства action - PullRequest
1 голос
/ 27 июля 2011

В моем JSP есть следующее, которое является всплывающим окном, вызываемым со страницы JSF.

<h:commandButton id="cmd" value="Click" 
    onclick="document.getElementById('frm_name:hiddenInput').value=test();"
    action="#{bean.actionClick}" />

и в методе javascript test () у меня есть

opener.focus();
opener.location.href = opener.location;
self.close();    
return hidValues;

Проблема IЯ сталкиваюсь с выбором значений во всплывающем окне JSP, метод действия bean-компонента не вызывается каждый раз, иногда он вызывается, иногда нет.

Я сомневался, связано ли это с кэшем, поэтому я добавил следующее во всплывающее окно JSP

response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);

Однако даже после добавления не для кэширования страницы JSP, метод действия bean по-прежнему невызывается, как я упоминал ранее, иногда вызывается, иногда нет.

Как я могу решить эту проблему?

Моя версия 1.1 JSF, область страницы - сеанс.

1 Ответ

0 голосов
/ 15 мая 2013

Я думаю, что ваша проблема в том, что окно закрывается перед отправкой, вы можете закрыть окно после того, как отправка завершена, вы можете сделать это, поместив переменную в ваш bean-компонент и прочитать ее в javascript во время загрузки вашей страницы

<script>

if( ${bean.canClose} ) {
 self.close()
}
</script>

поэтому после вызова метода действия страница перезагрузится и закроется самостоятельно

...