を実装する私のアクションクラスでは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()
。私の間違いを指摘してください。