代码之家  ›  专栏  ›  技术社区  ›  Akshay

我可以在servlet中使用JSF导航规则进行重定向吗?

  •  0
  • Akshay  · 技术社区  · 14 年前

    我不得不在我的Web应用程序中使用一些servlet。servlet执行一些处理,然后将用户重定向到xhtml页面。

    例子:

    <navigation-case>
        <from-outcome>bookingFailed</from-outcome>
        <to-view-id>/SecureUser/Reservation/New/BookingFailed.xhtml</to-view-id>
        <redirect/>
    </navigation-case>
    

    现在在servlet中,我想使用如下内容:

    response.sendRedirect("bookingFailed");
    

    response.sendRedirect("faces/SecureUser/Reservation/New/BookingFailed.xhtml");
    

    我该怎么做呢?

    1 回复  |  直到 14 年前
        1
  •  1
  •   BalusC    14 年前

    由于servlets不在JSF上下文中运行,因此您确实需要解析所有 <navigation-case> 不属于 faces-config.xml Map 你自己,这样你就可以做:

    response.sendRedirect("faces" + navigationCases.get("bookingFailed"));
    

    在这方面,内置的JAXP和XPath API可能很有用。

    也就是说,您确实应该考虑在JSF上下文中而不是在普通的servlet中进行JSF上下文相关的处理。使用托管bean或 PhaseListener 倾听 RESTORE_VIEW

    推荐文章