实现拦截器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>

稍后再试