在web.xml中添加条件

6

这是我的web.xml文件的一部分:

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

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

<location>/displayException</location>

针对上述 位置属性

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

尝试这样做的目的是:在开发模式下,我想在页面中看到异常信息,在实时模式下,当出现异常时,我想将其重定向到默认页面。

3个回答

3
您无法在web.xml级别进行操作。如果web.xml遵守系统属性则这个功能将会很实用,但它并不支持。
所以您唯一的选择是在代码中进行操作。幸运的是,您有各种可能性。您可以将错误URL映射到JSP,在其中实现基于系统属性或其他存储在属性文件、数据库或其他位置的参数的逻辑。您也可以在HTTP过滤器中进行操作。
您还可以创建多个版本的web.xml:一个用于生产环境,另一个用于测试。如果您想避免重复,则可以使用模板自动生成这些版本。

几个版本的web.xml就可以做到这一点。因为有几个类似的更改。谢谢。 - Suresh Atta

1
在Wildfly中,有一种非便携式的方法可以在web.xml(以及其他文件,如persistence.xml)中启用系统属性评估。要做到这一点,请在服务器配置(standalone.xml或其他文件)中,在ee子系统中指定以下内容:
<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 ......

// 错误页面 如果(“blog”.equals(url)) 博客内容...... 否则,如果(“profile”.equals(url)) 个人资料内容...... - Prince Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接