这是我的web.xml的一部分
<error-page>
<error-code>500</error-code>
<location>/index</location>
</error-page>
有没有办法告诉web.xml文件在开发模式下:
<location>/displayException</location>
对于上述location property
?
或通过代码添加条件的任何方式?
尝试执行此操作的目的是:在开发模式下,我希望在页面和实时模式中看到异常,我想在发生异常时将其重定向到默认页面。
答案 0 :(得分:3)
您无法在web.xml
级别执行此操作。如果web.xml
尊重系统属性但事实并非如此,那么这可能是一个很酷的功能。
所以你只能在代码中这样做。幸运的是,你有各种可能性。您可以将错误URL映射到JSP,您可以根据系统属性或存储在属性文件,DB或其他所需位置的其他参数来实现逻辑。您也可以在HTTP过滤器中执行此操作。
您还可以创建web.xml的多个版本:一个用于生产,另一个用于测试。如果要避免重复,请使用模板中的自动生成创建这些版本。
答案 1 :(得分: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>
答案 2 :(得分:0)
您可以在错误或位置页面中使用if语句。 web.xml
不支持if语句。
//error page
if("blog".equals(url))
blog content ......
else if("profile".equals(url))
profile content ......