JSF中的输出和命令链接合一



是否有可能在同一命令链接中同时使用结果和操作?

我试过

    <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范围

相关内容

  • 没有找到相关文章

最新更新