在web.xml中添加条件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在web.xml中添加条件相关的知识,希望对你有一定的参考价值。

这是我的web.xml的一部分

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

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

<location>/displayException</location>

对于上面的location property

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

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

答案

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

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

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

另一答案

在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>
另一答案

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

//error page
if("blog".equals(url))
    blog content ......
else if("profile".equals(url))
    profile content ......

以上是关于在web.xml中添加条件的主要内容,如果未能解决你的问题,请参考以下文章

在 JSP 中的 <% %> 代码片段中添加链接

maven web项目的web.xml报错The markup in the document following the root element must be well-formed.(代码片段

条件片段和导航重用

自动刷新android片段,直到满足条件

如何在Sublime Text中添加代码片段

如何管理在每个 git 版本中添加私有代码片段?