【问题标题】:Myfaces CODI DefaultErrorView - examples anywhere?Myfaces CODI DefaultErrorView - 任何地方的示例?
【发布时间】:2012-05-05 21:27:30
【问题描述】:

我在 Myfaces CODI 中看到了对 DefaultErrorView 的引用,但像往常一样 文档把一切都留给想象。我真的发现 CODI 是一个 很棒的 JSF 插件,但它会从一些示例中受益匪浅。

我可能天真地希望能够捕捉到可怕的 ViewExpiredException 使用此代码:

@Page(basePath = "/defaultErrorPage.xhtml")
public final class DefaultErrorPage extends DefaultErrorView {

}

...但是会话超时后发生的所有事情就是容器安全性需要我 当我尝试发出获取请求(单击 h:link)时到登录页面。做 有人知道我可以用这个 DefaultErrorView 做什么吗,有人举个例子吗?

谢谢!

【问题讨论】:

    标签: jsf codi


    【解决方案1】:

    在 DefaultErrorView 的 JavaDoc 中你看到:

    ...

    扩展此类的类也将用作错误视图,以防安全违规 (如果没有通过配置特殊错误视图 {@link org.apache.myfaces.extensions.cdi.core.api.security.Secured#errorView()})

    在 Wiki 中,您会看到例如:

    @安全

    ...

    如果发生违规,CODI 将使用 DefaultErrorView 作为导航目标(如果已配置)。

    ...

    (安全)错误页面

    以下示例显示了如何创建默认错误页面。只允许为每个应用程序提供一个默认错误页面。 需要实现 DefaultErrorView 接口,而不是实现 ViewConfig。

    ...

    以及手动使用:

    ...

    this.viewNavigationHandler.navigateTo(DefaultErrorView.class);

    ...

    Wiki 还链接了一个很好的示例,您可以在其中找到: http://code.google.com/a/apache-extras.org/p/myfaces-codi-examples/source/browse/community/src/main/java/org/apache/extras/myfaces/codi/examples/community/view/config/Pages.java

    -> 文档一切正常 ;-)

    【讨论】:

    • 感谢您的回复,我们必须同意不同意文档。我阅读了 wiki 中的 sn-ps 并看到了示例。我正在尝试创建“每个应用程序一个默认错误页面”,然后我从示例中查看这一行:“公共 @Page 类登录扩展 DefaultErrorView 实现页面” - 任何与我交谈的机会,是登录页面默认错误页面? Pages界面的意义是什么?如果我能让它工作,这是否能够获取 ViewExpiredException (如果不能,也许它正在工作并且我的测试用例无效)。谢谢。
    • 我要补充一点,我相信 JSF 只会在 POST 的恢复视图阶段抛出 ViewExpiredException,但我使用 h:link 和 h:outputLink (GET) 进行很多导航,所以我d 通常期望必须在相位侦听器中捕获 VEE,除非 CODI 可以在这方面发挥一些作用。我尝试了omnifaces FullAjaxExceptionHandler,但它在glassfish上启动时抛出异常。
    • 我们将它用作安全违规和未处理错误的默认错误页面,这些错误可通过 JSF ExceptionHandler 获得,因此它工作得很好。我不认为它打算与 h:outputLink 一起使用,因为它只是极端情况的一个组件,因为你不会恢复你的状态。对于 POST 请求,正确的是 h:link 或 h:commandLink。
    猜你喜欢
    • 2013-06-08
    • 2014-01-29
    • 2012-11-11
    • 1970-01-01
    • 2011-12-09
    • 1970-01-01
    • 2011-08-13
    • 2013-04-23
    • 1970-01-01
    相关资源
    最近更新 更多