1

我有一个名为 Foo 的类。还有一个叫做 FooBean 的 ManagedBean。在一个页面(Facelet)中,我从用户那里获得了一个新的 Foo 信息并将其插入 DB。首次提交数据后,将启用打印按钮。现在我需要用户单击打印按钮并查看另一个页面(Facelet),它是带有 PrintFooBean 的打印页面。如何将最近插入的 Foo 的 ID 传递给 PrintFooBean 并加载它并在打印页面上显示其项目?

什么是最好的方法?而且我更喜欢用户在新的浏览器窗口/选项卡中查看打印页面。

4

1 回答 1

1

将其作为请求参数传递。

<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基于.预加载同一 bean 中的数据id

@PostConstruct
public void init() {
    this.foo = fooDAO.find(id);
}
于 2011-02-03T17:19:20.950 回答