是否有可能在同一命令链接中同时使用结果和操作?
我试过
<h:commandLink outcome="page?faces-redirect=true"
value="Got to Page"
action="#{Bean.setValue("...")}" />
但它忽略了结果。
我有一个表格,里面有这样的数据:ID名称其他链接到下一页
因此,我想将ID提供给下一页,以显示属于以前选择的ID的数据。。。我怎么能意识到这一点?
您可以使用<f:setPropertyActionListener>
。
<h:commandLink value="Edit" action="edit?faces-redirect=true">
<f:setPropertyActionListener target="#{bean.id}" value="#{id}" />
</h:commandLink>
或者你可以滥用actionListener
。
<h:commandLink value="Edit" action="edit?faces-redirect=true"
actionListener="#{bean.setId(id)}" />
然而,这两种方式都需要一个会话范围的bean来记住所选的id
,这显然很尴尬。当你在不同的浏览器选项卡中多次打开这样的链接,然后在每个选项卡上进行交互时,网站的行为将非常不直观和令人困惑。
规范的方法是将其作为GET参数进行传递。
<h:link value="Edit" outcome="edit">
<f:param name="id" value="#{id}" />
</h:link>
目标页面可以通过<f:viewParam>
获取它,并在必要时通过<f:viewAction>
调用它上的业务操作。
另请参阅:
- 为实体创建主细节页,如何链接它们以及选择哪个bean范围