实现拦截器struts 2 过滤所有动作字段数据
Implement interceptor struts 2 filter all action fields data
我在 struts 2 中实现了我的第一个拦截器。我认为它非常基础,但是当它在操作之前运行时,操作字段都设置为空。
不确定我做错了什么
我的拦截器 class 是
public class LoginInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1L;
private static final Logger log = Logger.getLogger(LoginInterceptor.class);
@Override
public String intercept(final ActionInvocation invocation) throws Exception {
Map<String, Object> session = ActionContext.getContext().getSession();
User user = SessionUtilities.getUser(session);
if (user != null) {
return invocation.invoke();
}
Object action = invocation.getAction();
if (!(action instanceof LoginAction)) {
return "loginRedirect";
}
return invocation.invoke();
}
}
我的 struts.xml 文件是
<interceptors>
<interceptor name="login" class="ar.com.cipres.framework.logic.LoginInterceptor"/>
<interceptor-stack name="loginStack">
<interceptor-ref name="login"/>
</interceptor-stack>
</interceptors>
<default-action-ref name="go.home" />
<global-results>
<result name="loginRedirect" type="redirect">go.loginform.action</result>
<result name="exception" type="redirect">exception.jsp</result>
</global-results>
最后我的一个有问题的操作被配置为
<action name="go.asociate.form" method="prepareAsociateData" class="ar.com.cipres.chacabuco.asociate.AsociateAction">
<interceptor-ref name="loginStack"></interceptor-ref>
<result name="success">chaca/socios/asociateupdate.jsp</result>
</action>
到目前为止有什么意见吗?
谢谢
我想我找到了问题所在
我必须包括声明新的 defaulStack 时省略的 defaulStack。
所以我需要将我的 struts.xml 文件修改为
<interceptors>
<interceptor name="login" class="ar.com.cipres.framework.logic.LoginInterceptor"/>
<interceptor-stack name="loginStack">
<interceptor-ref name="login"/>
<interceptor-ref name="defaultStack"/> <!-- Need to be added to mantain default functionality -->
</interceptor-stack>
</interceptors>
稍后再试
我在 struts 2 中实现了我的第一个拦截器。我认为它非常基础,但是当它在操作之前运行时,操作字段都设置为空。 不确定我做错了什么 我的拦截器 class 是
public class LoginInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1L;
private static final Logger log = Logger.getLogger(LoginInterceptor.class);
@Override
public String intercept(final ActionInvocation invocation) throws Exception {
Map<String, Object> session = ActionContext.getContext().getSession();
User user = SessionUtilities.getUser(session);
if (user != null) {
return invocation.invoke();
}
Object action = invocation.getAction();
if (!(action instanceof LoginAction)) {
return "loginRedirect";
}
return invocation.invoke();
}
}
我的 struts.xml 文件是
<interceptors>
<interceptor name="login" class="ar.com.cipres.framework.logic.LoginInterceptor"/>
<interceptor-stack name="loginStack">
<interceptor-ref name="login"/>
</interceptor-stack>
</interceptors>
<default-action-ref name="go.home" />
<global-results>
<result name="loginRedirect" type="redirect">go.loginform.action</result>
<result name="exception" type="redirect">exception.jsp</result>
</global-results>
最后我的一个有问题的操作被配置为
<action name="go.asociate.form" method="prepareAsociateData" class="ar.com.cipres.chacabuco.asociate.AsociateAction">
<interceptor-ref name="loginStack"></interceptor-ref>
<result name="success">chaca/socios/asociateupdate.jsp</result>
</action>
到目前为止有什么意见吗?
谢谢
我想我找到了问题所在 我必须包括声明新的 defaulStack 时省略的 defaulStack。
所以我需要将我的 struts.xml 文件修改为
<interceptors>
<interceptor name="login" class="ar.com.cipres.framework.logic.LoginInterceptor"/>
<interceptor-stack name="loginStack">
<interceptor-ref name="login"/>
<interceptor-ref name="defaultStack"/> <!-- Need to be added to mantain default functionality -->
</interceptor-stack>
</interceptors>
稍后再试