首先获取JSF 2网址,而不是第二次点击

Her*_*zog 7 navigation url jsf-2

第一次点击后,JSF URL似乎没有变化,仅在第二次点击之后.例如,当导航home.jsf到时auction.jsf,显示的页面已经存在,auction.jsf但浏览器地址栏中的URL保持不变home.jsf,直到我第二次点击Auction链接.为什么会这样?有没有办法禁用它,并让网址正确显示?

Bal*_*usC 7

你似乎是通过POST而不是GET导航.您不应该首先通过POST执行页面到页面导航.替换<h:commandLink><h:link>.

所以,不要导航

<h:form>
    <h:commandLink value="Auction" action="auction" />
</h:form>
Run Code Online (Sandbox Code Playgroud)

但是

<h:link value="Auction" outcome="auction" />
Run Code Online (Sandbox Code Playgroud)

JSF POST表单基本上提交到当前URL,默认情况下,任何导航都是由服务器端转发使用RequestDispatcher#forward()(如果您熟悉基本的Servlet API,则知道这意味着什么).您可以尝试执行重定向

<h:form>
    <h:commandLink value="Auction" action="auction?faces-redirect=true" />
</h:form>
Run Code Online (Sandbox Code Playgroud)

但是,如上所述,这是一个不是解决方案的工作.

也可以看看:


Mr.*_*mes 3

您需要添加faces-redirect=true到您的网址。查看来自Mkyong.com的简短教程