2012-12-13 13 views

Odpowiedz

34
<global-forwards> 

Rozważyć jesteś walidacji Haslo dla różnych adresów URL, takich jak update.do, insert.do delete.do itd Jeśli jest to ważny użytkownik trzeba postępować z neccesary action.if nie doczekać logowania page.See mapowania poniżej

<action-mappings>   
    <action path="/insert" type="controller.Insert"> 
     <forward name="success" path="/insert.jsp"/> 
     <forward name="failure" path="/login.jsp"/> 
    </action>  
    <action path="/update" type="controller.Update"> 
     <forward name="success" path="/update.jsp"/> 
     <forward name="failure" path="/login.jsp"/> 
    </action> 
    <action path="/delete" type="controller.Delete"> 
     <forward name="success" path="/delete.jsp"/> 
     <forward name="failure" path="/login.jsp"/> 
    </action>   
</action-mappings> 

Zamiast powtarzania <forward name="failure" path="/login.jsp"/> można zadeklarować to w <global-forwards> jak poniżej

<global-forwards> 
    <forward name="failure" path="/login.jsp"/> 
</global-forwards> 

teraz można remo ve <forward name="failure" path="/login.jsp"/> w odwzorowaniach akcji.


<global-exceptions> 

Jeśli otrzymasz wyjątek java.io zamiast obsługiwać ręcznie dla każdego można zadeklarować globalnie jak poniżej.

<global-exceptions> 
    <exception type="java.io.IOException" path="/pages/error.jsp"/> 
</global-exceptions> 

Mam nadzieję, że to wyjaśnia twój problem.

+0

Bardzo dziękuję człowiekowi za wyjaśnienie, ale okazało się, że to trochę za długo. – user1900662

+0

dziękuję za wyjaśnienie, – Apache

+0

dziękuję za wyjaśnienie, powiedzmy, jeśli jest strona błędu HTTP 500 i trzeba przekierować do strony logowania, , jak to zrobić, dziękuję – Apache

3

Jeśli mówisz o Struts 1, global-exceptions to ExceptionHandlers, który zajmuje się niektórymi czynnościami pod numerem Exception, więc nie musisz zadeklarować go za działanie i uniknąć duplikowania.

Global-forwards mają ten sam pomysł. Jeśli masz do czynienia z tą samą ścieżką w różnych akcjach, możesz uniknąć duplikacji, deklarując tylko jedną wartość: global-forward i wszystkie akcje mogą z niej korzystać. Dzięki global-forwards możesz również unikać adresów URL o sztywnych kodach w swoich jsp, np. Możesz zadeklarować globalne przesłanie, takie jak <forward name="loginLink" path="/login" /> , a następnie w swoim jsp <html:link forward="loginLink">Login</html:link>.

Powiązane problemy