SSH-struts 2の異常処理
6787 ワード
j 2 seを学習する際にjavaのexceptionクラスを利用して異常を処理することを学習したことがある.struts 2フレームワークでは異常に対する処理も提供されており、簡単に言えばActionに異常が発生した場合、struts 2.xmlファイルで構成し、ページのジャンプを調整し、ユーザーにより人間的なフィードバックを与えることができる.
struts 2の例外処理では、グローバルな2つの例外処理に分けられます.1つは、すべてのActionに例外が発生してもこのページにジャンプできます.もう1つはローカル:アクション例外を指定してこのページにジャンプします.
ローカル例外処理struts 2.xmlでexception-mappingノードでresult属性名を指定します.Exceptionプロパティでは、exceptionを継承する例外クラスを指定します.resultノードでは、nameプロパティと、例外が発生した後にジャンプするページを指定します.
グローバル例外処理global-resultsノードで異常ジャンプを指定するページ;global-exception-mappingsで異常クラスを指定します.
つまり、Actionで例外と結果を定義したり、グローバルの例外と結果を定義したりすることができます.ローカルの優先度はグローバルより大きく、グローバルを定義すればすべてのActionに共通することができますが、ローカルの例外と結果は現在のActionでしか享受できません.
struts 2の例外処理では、グローバルな2つの例外処理に分けられます.1つは、すべてのActionに例外が発生してもこのページにジャンプできます.もう1つはローカル:アクション例外を指定してこのページにジャンプします.
ローカル例外処理struts 2.xmlでexception-mappingノードでresult属性名を指定します.Exceptionプロパティでは、exceptionを継承する例外クラスを指定します.resultノードでは、nameプロパティと、例外が発生した後にジャンプするページを指定します.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="struts2" extends="struts-default">
<action name="login" class="com.syq.struts2.LoginAction" >
<exception-mapping result="usernameInvalid" exception="com.syq.exception.UsernameException"></exception-mapping>
<exception-mapping result="passwordInvalid" exception="com.syq.exception.PasswordException"></exception-mapping>
<result name="success">/result.jsp</result>
<result name="usernameInvalid">/UsernameInvalid.jsp</result>
<result name="passwordInvalid">/PasswordInvalid.jsp</result>
</action>
</package>
</struts>
グローバル例外処理global-resultsノードで異常ジャンプを指定するページ;global-exception-mappingsで異常クラスを指定します.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="struts2" extends="struts-default">
<global-results>
<result name="usernameInvalid">/UsernameInvalid.jsp</result>
<result name="passwordInvalid">/PasswordInvalid.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="usernameInvalid" exception="com.syq.exception.UsernameException"></exception-mapping>
<exception-mapping result="passwordInvalid" exception="com.syq.exception.PasswordException"></exception-mapping>
</global-exception-mappings>
<action name="login" class="com.syq.struts2.LoginAction" >
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
つまり、Actionで例外と結果を定義したり、グローバルの例外と結果を定義したりすることができます.ローカルの優先度はグローバルより大きく、グローバルを定義すればすべてのActionに共通することができますが、ローカルの例外と結果は現在のActionでしか享受できません.