【问题标题】:Navigate to other page using POST request in JSF在 JSF 中使用 POST 请求导航到其他页面
【发布时间】:2016-08-01 00:33:45
【问题描述】:

在 JSF 中,我正在执行如下 GET 请求:

<p:button value="Select Document" icon="fa fa-save" outcome="index">
    <f:param name="documento"
             value="#{dIGRCController.digrc.selectedDigrc.documento}" />
</p:button>

我不想在 URL 中显示该值,因此我尝试发出 POST 请求。我怎样才能做到这一点?

在我的项目中,我使用 PrimeFaces 5.3、JSF 2.2 和 OmniFaces 1.11。

【问题讨论】:

    标签: jsf jsf-2 navigation http-post


    【解决方案1】:

    使用commandButton 而不是button

    您的 GET sn-p 的 POST 等效项如下:

    <h:form>
        <p:commandButton value="Select Document" icon="fa fa-save" action="index">
            <f:param name="documento"
                     value="#{dIGRCController.digrc.selectedDigrc.documento}" />
        </p:commandButton>
    </h:form>
    

    您只需要记住,网址更改不会反映在地址栏中,并且目标页面不再可收藏。如果目标页面不是幂等的,这应该不是问题,但它看起来不是一个(“SELECT”始终是幂等的)。

    另见:

    【讨论】:

    • 这有效,但是当我从 search.jsf 向 index.jsf 发出 POST 请求时,URL 未更新为 index.jsf。它保留为 search.jsf。我可以让它改变吗?另外,您能否解释一下页面幂等是什么意思?谢谢@BalusC
    • 请参阅此衍生问题的第二和第三个“另请参阅”链接。
    • 是的,刚看到哈哈。它使用 ?faces-redirect=true。谢谢楼主!
    • 我希望您已经考虑过当最终用户将 URL 加入书签/复制粘贴/共享到不同的浏览器窗口甚至会话时,页面应该如何表现。
    猜你喜欢
    • 2022-10-15
    • 2015-08-21
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    相关资源
    最近更新 更多