在JSF中实现返回导航



我正在寻找一种JSF编码实践,它将允许一个页面链接到另一个页面,当它完成时,将返回到原始页面。所以我有一个页面 viewdoc。xhtml有这个:

        <f:metadata>
                <f:viewParam name="id" value="#{viewDoc.id}" />
        </f:metadata>
        ( bunch of stuff to show the document indicated by "id" )
        <p:button value="Edit Name/Title"
              outcome="editnametitle">
                <f:param name="id" value="#{param.id}" />
        </p:button>

然后我有一个页面editnametitle。xhtml它有这个:

  <h:form>
     (input fields and stuff)
                <p:commandButton value="Save Changes"
                                 action="#{editNameTitle.doSave()}"
                                 />
                <p:commandButton value="Cancel"
                                 action="#{editNameTitle.doCancel()}"
                                 immediate="true"
                                 />
  </h:form>

那么我如何实现支持bean方法doSave()doCancel(),以便当它们完成时,它们导航回viewDoc.xhtml,其中包含文档的id参数?

我还没有找到任何解决方案的指导,到目前为止,我对我想到的任何方法都不满意。我想过在p:按钮中添加返回路径,如:

<p:button value="Edit Name/Title"
      outcome="editnametitle">
      <f:param name="id" value="#{param.id}" />
      <f:param name="returnoutcome" value="viewDoc" />
</p:button>

这是正确的方法吗?或者是否有我错过的JSF功能?

是的,如果这些请求是幂等的,基本上就是这样。

一个可能的改进是,您可以动态获取当前视图ID,如下所示:

<f:param name="returnoutcome" value="#{view.viewId}" />

这允许在可重用的自定义标签中抽象它。
我个人也会使用参数名"from",因为这样更短。

相关内容

  • 没有找到相关文章

最新更新