Apache MyFaces ERROR_HANDLING上下文参数VS javax.faces.PROJECT_STAGE

时间:2012-05-09 14:07:34

标签: jsf-2 web.xml myfaces

有人可以验证这些上下文参数是否相同吗?

似乎将javax.faces.PROJECT_STAGE设置为'Development'与将org.apache.myfaces.ERROR_HANDLING设置为'true'具有相同的效果。

我见过很多例子,其中jacax.faces.PROJECT_STAGE和/或faces.DEVELOPMENT显式设置为FALSE,而org.apache.myfaces.ERROR_HANDLING设置为TRUE。

第一印象表明FALSE的初始设置是多余的,我推测使用PROJECT_STAGE更好,因为它与JSF规范的特定实现无关?

由于

<context-param>
        <param-name>
            org.apache.myfaces.ERROR_HANDLING
        </param-name>
        <param-value>
            true
        </param-value>
    </context-param>

    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
</context-param>

2 个答案:

答案 0 :(得分:1)

今天在教科书中找到了答案。

javax.faces.PROJECT_STAGEERROR_HANDLING级别的用户提供工具。

因此,它们并不等同,但使用一个会带来另一个人的行为。

它是在JSF 2.0中引入的。

由于其在API中的定义,javax.faces.PROJECT_STAGE更适合首选。

答案 1 :(得分:0)

org.apache.myfaces.ERROR_HANDLING

表示myfaces负责处理错误。通过将值指定为true或false。

facelets.DEVELOPMENT

表示facelets负责处理错误。

这两种机制都可以处理异常并提供详细的堆栈跟踪。

MyFaces提供的错误处理机制在容器的默认错误页面机制之前启动,因此通过将其值设置为false,我们禁用了处理异常的能力。