导航到其他页面时URL未更改

时间:2014-01-09 05:57:04

标签: jsf-2

我正在使用JSF 2.0。导航到另一个页面时,我的网址没有变化。在faces-config.xml

<navigation-rule>
    <from-view-id>/pages/common_attribute_list.xhtml</from-view-id>
    <navigation-case>
        <from-outcome>editManageCommon</from-outcome>
        <to-view-id>/pages/add_common_attribute.xhtml</to-view-id>
    </navigation-case>
 </navigation-rule>

我在导航案例中没有使用<redirect>,因为我还要在其他页面中显示面部消息。如果我添加<redirect>,则会停止显示面部消息。如何在不添加<redirect>的情况下更改网址?

1 个答案:

答案 0 :(得分:0)

要更改浏览器地址栏中的URL,您必须告诉浏览器在该URL上触发新的HTTP请求。这正是重定向在幕后的作用。所以真的需要保留它。

另见:


回到面向消息在重定向时丢失的不良后果,这完全是预期的,因为它们是请求作用域,并且您使用重定向基本上会丢弃当前请求并创建新请求。通过将面部消息存储在所谓的闪存范围中,您可以让面部消息在重定向中存活。

这只是在添加消息时调用Flash#setKeepMessages()传递true的问题。

context.addMessage(message);
context.getExternalContext().getFlash().setKeepMessages(true);

另见: