我正在寻找一个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工具可以做到这一点我错过了?
答案 0 :(得分:1)
是的,如果这些请求是幂等的,那基本上就是这样。
一个可能的改进是您可以动态获取当前视图ID,如下所示:
<f:param name="returnoutcome" value="#{view.viewId}" />
这允许在可重复使用的自定义标签中抽象出来 我个人使用参数名称&#34;来自&#34;也是因为它更短。