2016-03-08 4 views
0

Я реализовал свой первый перехватчик в struts 2. Я думаю, что он очень простой, но когда он запускается до действия, все поля действия имеют значение null. Не уверен, что Я делаю неправильно Мой класс перехватчикРеализация перехватчиков struts 2 фильтровать все данные полей действий

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> 

Любые комментарии до сих пор?

Спасибо

ответ

0

Я думаю, что я нашел проблему я должен включать 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> 

Going попробовать позже

 Смежные вопросы

  • Нет связанных вопросов^_^