Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JSF导航到上一页_Jsf_Omnifaces - Fatal编程技术网

使用JSF导航到上一页

使用JSF导航到上一页,jsf,omnifaces,Jsf,Omnifaces,我使用一个支持bean,在这里我可以保存一个表单并导航到此页面 public String saveHere() { return Faces.getViewId() + "?faces-redirect=true&includeViewParams=true"; } 如何使用OmniFaces导航到上一页? 我的保存操作应该会导致我有“编辑”按钮的页面。 通常为列表视图(每个项目旁边都有编辑按钮) 或另一页(带有此项目的编辑按钮) 谢谢 您需要从某处导航的页面id。乍一看,将

我使用一个支持bean,在这里我可以保存一个表单并导航到此页面

public String saveHere() {
    return Faces.getViewId() + "?faces-redirect=true&includeViewParams=true";
}
如何使用OmniFaces导航到上一页? 我的保存操作应该会导致我有“编辑”按钮的页面。 通常为列表视图(每个项目旁边都有编辑按钮) 或另一页(带有此项目的编辑按钮)


谢谢

您需要从某处导航的页面id。乍一看,将它保持在会话中似乎是个好主意,但是,如果您在多选项卡中导航(通过不同的浏览器选项卡共享相同的Http会话),这可能会保留在coflict中

话虽如此,对于您的案例来说,最合适的解决方案是将视图参数传递给您的edition视图,告知您来自何处。这应该很容易做到:

<h:button outcome="edit" value="Edit registry">
    <f:param name="pageFrom" value="#{view.viewId}" />
</h:button>
这是实现你要求的最直接的方法。但是,您必须考虑到您来自的页面仍然是一个视图参数,以便最终用户可以在那里键入他想要的内容。通过这种行为,他可以实现重定向到其他页面,而不是预期的页面。如果要避免这种情况,请使用而不是查看参数

另请参见:

<f:metadata>
    <f:viewParam name="pageFrom" value="#{editBean.pageFrom}" />
</f:metadata>
public String saveHere() {
    //save here
    return pageFrom + "?faces-redirect=true&includeViewParams=true";
}