在JSF中实现返回导航

时间:2015-07-15 16:33:46

标签: jsf primefaces jsf-2.2

我正在寻找一个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工具可以做到这一点我错过了?

1 个答案:

答案 0 :(得分:1)

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

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

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

这允许在可重复使用的自定义标签中抽象出来 我个人使用参数名称&#34;来自&#34;也是因为它更短。