在我实现的动作类中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()
. 请指出我的错误。