だから私は取り組んでいるStruts2アプリケーションを持っています。フロント ページには、アプリケーションがスローする例外を表示するセクションがあります。カスタムインターセプターを追加するまで、これはうまくいきました。
これが私のインターセプターコードです:
public String intercept(ActionInvocation actionInvocation) throws Exception {
    String result = actionInvocation.invoke();
    return result;
}
これは、例外が生成される Action クラスのコードです。AuthService.Authorize() が呼び出される場所で発生します。
if(AuthService.Authorize(username, password)) {
        if(AuthService.AdminAuthorized()) {
            return "admin";
        }
        return SUCCESS;
    }
これは AuthService.Authorize() の内部にあり、acc にアクセスすると null ポイント例外がスローされます。
try {
            acc = profileRepository.WhereSingle("Username", "=", username);
        } catch (Exception e) {
            return false;
        }
        if (acc.Password.equals(password)) {
ただし、ページがロードされたとき。これは入力されていません:
<s:property value="%{exception.message}"/>
私はそれをテストしましたが、単純に Action クラスから例外をスローした場合に機能します。私はredirectActionなどを呼び出していません
これは、他のすべてのパッケージが拡張するデフォルトのパッケージ定義の先頭です
<package name="default" namespace="/" extends="struts-default">
    <!-- Interceptors -->
    <interceptors>
        <interceptor name="conversation" class="global.ConversationInterceptor"/>
        <interceptor-stack name="dils-stack">
            <interceptor-ref name="defaultStack"/>
            <interceptor-ref name="conversation"/>                
        </interceptor-stack>
    </interceptors>
    <default-interceptor-ref name="dils-stack"/>
    <global-results>
        <result name="Exception" >/index.jsp</result>
    </global-results>
    <global-exception-mappings>
        <exception-mapping exception="java.lang.Exception" result="Exception"/>
        <exception-mapping exception="java.lang.NullPointerException" result="Exception"/>
    </global-exception-mappings>