在web.xml中添加条件

问题描述 投票:6回答:3

这是我的web.xml的一部分

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

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

<location>/displayException</location>

对于上面的location property

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

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

java java-ee servlets web-applications web.xml
3个回答
3
投票

你不能在web.xml级别这样做。如果web.xml尊重系统属性但它没有,这可能是一个很酷的功能。

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

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


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>

0
投票

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

//error page
if("blog".equals(url))
    blog content ......
else if("profile".equals(url))
    profile content ......
© www.soinside.com 2019 - 2024. All rights reserved.