gpt4 book ai didi

java - setSession() 没有被调用?

转载 作者:行者123 更新时间:2023-11-30 09:08:42 25 4
gpt4 key购买 nike

在我实现SessionAware 的 Action 类中,它的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>

Action 类

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() 上接收回调。请指出我的错误。

最佳答案

是的,你需要servletConfig拦截器。

An interceptor which sets action properties based on the interfaces an action implements.

因为您实现了 SessionAware,所以拦截器应该在堆栈上以允许使用 servlet session 功能。

关于java - setSession() 没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23388436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com