2012-12-13 12 views

答えて

34
<global-forwards> 

は、それが有効なユーザーである場合は、ログインを楽しみにneccesary action.ifをしませ続行する必要があるあなたがinsert.do delete.doなど、update.doなどの異なるURLのユーザー名のパスワードを検証している考えてみましょう

<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> 

代わりの<forward name="failure" path="/login.jsp"/>あなたのような

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

の下<global-forwards>でこれを宣言することができます今、あなたはレモでき繰り返す以下page.Seeマッピングアクションマッピングで<forward name="failure" path="/login.jsp"/>を実行してください。


<global-exceptions> 

あなたは世界的に以下のように宣言することができ、それぞれのために手動で処理するのではなく、java.Io例外を受け取った場合。

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

これがあなたの問題を明確にすることを願っています。

+0

ありがとうございました。 – user1900662

+0

説明のためにありがとう、 – Apache

+0

HTTP 500エラーページがあり、ログインページ、 Apache

3

Struts 1について話している場合、global-exceptionsはすべてExceptionを扱うExceptionHandlersであるため、アクションごとに宣言して重複を避ける必要はありません。

Global-forwardsも同じ考えです。異なるアクションで同じパスで転送する場合は、global-forwardという1つだけを宣言し、すべてのアクションで使用できるようにすることで、重複を避けることができます。 global-forwardsを使用すると、jspでハードコードされたURLを避けることもできます。例えば、<forward name="loginLink" path="/login" /> のようにグローバル転送を宣言してから、<html:link forward="loginLink">Login</html:link>に入れることができます。

関連する問題