2011-08-17 50 views
1

我知道使用页面转发有一些优点,因为它是JSF中的默认行为。 我也知道如何在隐式导航中使用'faces-redirect'或者在faces-config文件中使用标签来为某些页面设置重定向。 我在互联网上搜索了很多,但我没有找到一个简单而直接的方式(如配置参数)来启用所有页面的重定向。 我想在任何地方使用页面重定向的原因如下:如果每个页面被问及其URL,那么容器可以用于页面授权而不需要额外的安全库。不知道这是否是一个好主意,但在这一刻性能不是问题,使用容器安全性可以节省首次发布的开发时间。JSF 2.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?

+0

正如其他问题所述,我对JSF颇为陌生,我正在开发基于Netbeans 7.0向导生成代码的应用程序。起初我认为自动生成的代码是最佳实践的结果,所以我试图遵循它的架构和约定,但是在经历了许多令人头痛的事情之后,我开始相信它并未与JSF 2.0保持同步。例如,所有的页面到页面导航都使用完成,我认为这是实现它的正确方法。我会尝试替换它,但遗留代码是很多... – Filippo