6

这是我的 web.xml 的一部分

    <error-page>
    <error-code>500</error-code>
    <location>/index</location>
    </error-page>

有没有办法告诉 web.xml 文件处于开发模式:

<location>/displayException</location>

对于上述 location property

或任何方式通过代码添加条件?

尝试这样做的目的是:在开发模式下,我想在页面中查看异常,而在实时模式下,我想在发生异常时将他重定向到默认页面。

4

3 回答 3

3

你不能在web.xml水平上做到这一点。如果尊重系统属性,这可能是一个很酷的功能,web.xml但事实并非如此。

所以你唯一的方法就是在代码中做到这一点。幸运的是,您有各种可能性。您可以将错误 URL 映射到 JSP,您可以在 JSP 中根据存储在属性文件、数据库或您想要的位置的系统属性或其他参数来实现逻辑。您也可以在 HTTP 过滤器中执行此操作。

您还可以创建多个版本的 web.xml:一个用于生产,另一个用于测试。如果您想避免重复使用从模板自动生成来创建这些版本。

于 2013-06-11T11:51:25.547 回答
1

在 Wildfly 中,有一种非便携式方法可以在 web.xml(和其他,如 persistence.xml)中启用系统属性评估。为此,请在ee子系统中的服务器配置(standalone.xml 或其他)中指定以下内容:

<subsystem xmlns="urn:jboss:domain:ee:2.0">
    <spec-descriptor-property-replacement>true</spec-descriptor-property-replacement>
    <!-- ... -->
</subsystem>

然后你可以做这样的事情:

<location>${myapp.errorpage.location}</location>
于 2015-09-30T11:18:28.423 回答
0

您可以在错误或位置页面中使用 if 语句。web.xml不支持 if 语句。

//error page
if("blog".equals(url))
    blog content ......
else if("profile".equals(url))
    profile content ......
于 2018-01-02T06:16:08.553 回答