我有以下按钮
<p:button
onclick='javascript:Open_2_Windows_SideBy_Side("#{bean.id}", "#{bean.title}"); return false;' value="View Item">
</p:button>
javascript基本上打开了两个浏览器窗口,一个是帮助页面,其中包含有关如何与第二个窗口交互的说明,这是使用item.id
从外部应用程序通过GET检索的项目的详细信息
在帮助窗口中,我只使用#{param.title}
,但现在我想使用更多项属性。我不想发送更多网址参数。
我试过
<p:commandButton
onclick='javascript:Open_2_Windows_SideBy_Side("#{bean.id}", "#{bean.title}");
return false;' value="View Item">
<f:setPropertyActionListener value="#{item}" target="#{helpView.selectedItem}" />
</p:commandButton>
然后在help.xhtml中我把
#{helpView.selectedItem.title}"
但是,从不在helpView支持bean中设置selectedItem属性。
有没有办法将所选项目从第一个视图设置为帮助视图,或者我是否需要使用o:viewParam
和转换器设置的ID设置在helpView中重新查询该项目?
我的想法是,当我得到一个项目列表而不必重新查询数据库时,我已经在第一个视图中对数据库进行了查询。
答案 0 :(得分:0)
在隐藏输入中创建一个包含所需值的表单,并将它们绑定到helpview支持bean,并在打开帮助窗口后提交表单。这样你就不必将它们作为params和url的一部分传递给它们。您将在提交后在helpview bean中分配值,而无需使用params。有关提交示例,请参阅How to submit form to new window?。