Передача данных между ManagedBeans - PullRequest
1 голос
/ 03 февраля 2011

У меня есть один класс под названием Foo. И один ManagedBean называется FooBean. На странице (Facelet) я получаю новую информацию Foo от пользователя и вставляю ее в БД. После первой отправки данных кнопка печати будет активирована. Теперь мне нужно, чтобы пользователь нажал кнопку печати и увидел другую страницу (Facelet), которая является страницей печати с PrintFooBean. Как я могу передать идентификатор недавно вставленного Foo в PrintFooBean, загрузить его и отобразить его элементы на странице печати?

Какой самый лучший способ? И я предпочитаю, чтобы пользователь видел страницу печати в новом окне / вкладке браузера.

1 Ответ

1 голос
/ 03 февраля 2011

Передайте его как параметр запроса.

<a href="print.jsf?id=#{foo.id}" target="_blank">print</a>

или незаметно прогрессивно улучшается с помощью JS window.open

<a href="print.jsf?id=#{foo.id}" target="_blank"
    onclick="window.open('print.jsf?id=#{foo.id}'); return false;">print</a>

Заполните боб печати id.

@ManagedProperty(value="#{param.id}")
private Long id;

Предварительная загрузка данных Foo в том же бине на основе id.

@PostConstruct
public void init() {
    this.foo = fooDAO.find(id);
}
...