我有一个名为Foo的类。一个ManagedBean名为FooBean。在页面(Facelet)中,我从用户那里获得了一个新的Foo信息并将其插入到DB中。首次提交数据后,将启用打印按钮。现在我需要用户单击打印按钮并查看另一个页面(Facelet),它是PrintFooBean的打印页面。如何将最近插入的Foo的ID传递给PrintFooBean并加载它并在打印页面上显示其项目?
最好的方法是什么? 我更喜欢用户在新的浏览器窗口/标签页中看到打印页面。
答案 0 :(得分: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
填充print bean。
@ManagedProperty(value="#{param.id}")
private Long id;
根据Foo
在同一个bean中预加载id
数据。
@PostConstruct
public void init() {
this.foo = fooDAO.find(id);
}