2013-06-11 20 views
5

To jest część mojego web.xmlDodawanie warunki w web.xml

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

Czy istnieje jakiś sposób, aby powiedzieć do pliku web.xml, że w trybie rozwoju:

<location>/displayException</location>

dla powyższego location property?

lub w inny sposób, aby dodać warunek za pomocą kodu?

Cel próby wykonania tego to: W trybie programistycznym chcę zobaczyć wyjątek na stronie iw trybie na żywo chcę przekierować go na stronę domyślną po wystąpieniu wyjątku.

Odpowiedz

3

Nie można tego zrobić na poziomie web.xml. Może to być fajna cecha, jeśli szacunek dotyczy właściwości systemu, ale tak nie jest.

Więc jedyną metodą jest zrobienie tego w kodzie. Na szczęście masz różne możliwości. Możesz zmapować adres URL błędu do strony JSP, w której implementujesz logikę na podstawie właściwości systemu lub innego parametru przechowywanego w pliku właściwości, DB lub w dowolnym miejscu. Możesz to zrobić również w filtrze HTTP.

Można także utworzyć kilka wersji pliku web.xml: jeden do produkcji, drugi do testów. Jeśli chcesz uniknąć duplikacji, utwórz te wersje, korzystając z automatycznego generowania z szablonu.

+0

** zrobi to kilka wersji twojego web.xml **. Ponieważ istnieje kilka takich zmian. Dzięki. –

1

W Wildfly istnieje nieprzenośny sposób na włączenie oceny właściwości systemu w web.xml (i innych, takich jak persistence.xml). W tym celu należy podać następujące w konfiguracji serwera (standalone.xml lub inny), na ee podsystemu:

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

Następnie można robić takie rzeczy jak to:

<location>${myapp.errorpage.location}</location> 
0

Można używać if na stronie błędu lub lokalizacji. web.xml nie obsługuje instrukcji if.

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

// strona błędu if ("blog" .equals (url)) treść blogu ...... else if ("profile" .equals (url)) treść profilu ...... –