У меня есть logininterceptor, который проверяет объект члена сеанса и, если он пуст, перенаправляет его на страницу входа, в противном случае продолжает действовать.
Каждый блок действий имеет этот перехватчик. Проблема в том, что когда вы вызываете action, он попадает на перехватчик, если это правда, продолжить метод действия, затем возвращать «success» или «input», а затем снова нажимать на перехватчик, чтобы перенаправить выбранное имя результата.
Как я могу предотвратить вызов перехватчика дважды?
Код перехватчика:
public String intercept(ActionInvocation actionInvocation) throws Exception {
HttpServletRequest request = (HttpServletRequest) actionInvocation.getInvocationContext().get(StrutsStatics.HTTP_REQUEST);
HttpSession session = request.getSession();
if (session.getAttribute("member")==null) {
return Action.LOGIN;
} else {
return actionInvocation.invoke();
}
}
просмотр действия struts.xml:
<action name="actionName" class="actionClass" method="init">
<interceptor-ref name="loginStack"/>
<result name="input">show.jsp</result>
</action>