我知道使用页面转发有一些优点,因为它是JSF中的默认值。 我也知道如何使用隐式导航中的“faces-redirect”或faces-config文件中的标记为某些页面设置重定向。 我在互联网上搜索了很多但我没有找到一种简单直接的方法(例如配置参数)来启用所有页面的重定向。 我想在任何地方使用页面重定向的原因如下:如果每个页面都被问到其网址,则该容器可用于页面授权而无需额外的安全库。不知道它是不是一个好主意,但在这一刻表演不是问题,使用容器安全可以节省第一个版本的开发时间。
答案 0 :(得分:1)
您可以使用自定义ConfigureableNavigationHandler
来实现此目的。您可以在此问题的答案中找到启动示例:JSF 2 and Post/Redirect/Get?
然而,我觉得你正在以错误的方式设计页面到页面的导航。您似乎正在使用POST请求进行简单的页面到页面导航。如果您将它们修复为GET请求,那么您不必担心这一点。因此,使用<h:link>
代替<h:commandLink>
进行页面到页面的导航。这样您就不需要实现PRG。另请参阅When should I use h:outputLink instead of h:commandLink?