Генерация всплывающих окон в JSF - PullRequest
3 голосов
/ 20 декабря 2008

Я новичок в мире JSF, помогите, пожалуйста, создать всплывающее окно на странице.

Вот мое требование. У меня будет список ссылок на моей главной странице (родительской) при нажатии на каждую ссылку, которая мне нужна, чтобы показать всплывающее окно, содержащее некоторые детали, которые мне нужно получить из БД во всплывающем окне MBean. У меня будет несколько кнопок в моем всплывающем окне, и для каждого и каждого действия у меня будет соответствующая операция с БД. Я испробовал разные способы и потерпел неудачу.

Проблема, с которой я сталкиваюсь, заключается в том, что при всплывающей загрузке в первый раз все хорошо и проецирует значения, как и ожидалось. Но во второй раз он показывает новые значения в функции init, и я не вижу новые значения на экране, вместо этого он показывает первые всплывающие значения.

Ответы [ 7 ]

1 голос
/ 25 марта 2009

Вы проверили свой файл face-config.xml, чтобы убедиться, что ваш компонент находится в области запроса?

<managed-bean-scope>request</managed-bean-scope>

Если ваш компонент находится в области сеанса или приложения, компонент не создается заново при каждом обновлении страницы, поэтому значения в компоненте не изменяются.

0 голосов
/ 14 января 2010

MyFaces Orchestra имеет встроенную поддержку многооконных приложений.

0 голосов
/ 13 сентября 2009

Я не такой большой программист для JSF, но я полагаю, что вам нужен JavaScript для запуска всплывающих окон при событии щелчка. JSF - это Java-инфраструктура на стороне сервера, поэтому он не может открыть новое окно. Я не уверен за этот ответ. использовал эту ссылку, чтобы узнать мысль JSF: http://www.javapassion.com/handsonlabs/jsfsimpleapps/#Exercise_1

0 голосов
/ 26 марта 2009

Было бы полезно узнать, как вы показываете всплывающее окно и используете ли вы какой-либо компонент JSF для этого. Если вы просто показываете скрытый div (или что-то, что вы загружаете один раз, когда загружается главная страница), вы можете не воспроизводить этот div снова, поэтому данные не актуализируются.

0 голосов
/ 13 января 2009

Похоже на кеш, связанный со мной, но проверьте следующее:

  • Вы отладили и видели правильные значения в бине;
  • Вы убедились, что это фасоль? что значения выбираются;
  • Вы уверены, что браузер сервер второй раз ?; и
  • Вы проанализировали логи (и активировали их!) И убедились, что ошибок нет?
0 голосов
/ 13 января 2009

Не совсем уверен, что это стандартный JSF (на самом деле я уверен, что это не так), но у вас должен быть метод isPostBack () в ваших компонентах, который позволяет вам знать, загружаете ли вы страницу первый раз или перезагружаем его после действия; если бы вы могли использовать метод isPostBack (), вы могли бы загружать значения из БД только при первой загрузке страницы, не перезаписывая измененные значения после действий.

0 голосов
/ 31 декабря 2008

Итак (если я правильно понимаю вашу проблему) проблема в том, что во второй раз измененные значения боба не попадают в интерфейс?

Я удивлен, что это меняется в зависимости от того, во всплывающем окне или нет.

Некоторые мысли:

  • Предположительно, когда вы открываете это всплывающее окно, вы просто открываете страницу, т.е. http://localhost:8080/myApp/myPopupURL?
  • Является ли mbean (когда вы говорите mbean, вы имеете в виду java-объект, к которому у вас есть доступ #{name.javaBeanField} верно?) Запросом или областью действия сеанса?
  • Что вы делаете, чтобы получить этот результат? Вы щелкаете по всплывающей ссылке, затем снова щелкаете по этой ссылке (ожидается, что уже открывшееся всплывающее окно обновится)? Или вы щелкаете ссылку, закрываете всплывающее окно и снова щелкаете ссылку? Или вы щелкаете по ссылке, а затем обновляете всплывающее окно?

В данный момент у меня нет работающей настройки JSF, но если бы я это сделал, я бы попытался создать одну страницу JSF со ссылкой. Эта ссылка откроет всплывающее окно, которое будет указывать на статический URL (как в примере выше). Статический URL будет отображаться в действительно простом mbean, которое делает что-то простое, например, показывает int, представляющее собой случайное число от 1 до миллиона.

Получение такой работы, по крайней мере, исключает возможность того, что что-то еще будет не так. Иногда у меня возникали проблемы с произвольным использованием JSF исключений и обновлением страницы старыми значениями (поскольку жизненный цикл не завершался).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...