2

を実装する私のアクションクラスではSessionAware、それsetSession()は呼び出されません。直接コールバックを受信して​​いますexecute()

関連する詳細を次に示します。

Struts.xml

<package name="profile" extends="struts-default" namespace="/profile">
    <result-types>
        <result-type name="dispatcher"
            class="org.apache.struts2.dispatcher.ServletDispatcherResult"
            default="true" />
        <result-type name="tiles"
            class="org.apache.struts2.views.tiles.TilesResult"></result-type>
    </result-types>
    <interceptors>
        <interceptor name="authenticationinterceptor"
            class="interceptors.common.AuthenticationInterceptor"></interceptor>
        <interceptor-stack name="secureInterceptor">
            <interceptor-ref name="authenticationinterceptor"></interceptor-ref>
        </interceptor-stack>
    </interceptors>

    <action name="staff" class="actions.profile.StaffProfileAction">
        <interceptor-ref name="secureInterceptor"></interceptor-ref>
        <result name="success" type="tiles">/profilestaff.tiles</result>
    </action>

</package>

アクションクラス

public class StaffProfileAction extends ActionSupport implements SessionAware {
    SessionMap<String, Object> sessionmap;

    public String execute() throws Exception {

    }

    @Override
    public void setSession(Map<String, Object> session) {
        logger.info("StaffProfileAction->setSession");
        sessionmap = (SessionMap<String, Object>) session;

    }
}

デフォルトスタックのインターセプターは使用していません。でコールバックを受信するには、インターセプターを追加する必要がありますかsetSession()。私の間違いを指摘してください。

4

1 に答える 1