У меня есть intercetpor, который проверяет, вошел ли пользователь в систему, прежде чем выполнять запрошенное действие. Я попытался установить это по умолчанию для всех действий. Для всех адресов, кроме одного, это работает как шарм. Когда я перехожу к своему корневому URL-адресу "http://localhost:8080/map/"
, по какой-то причине перехватчик не срабатывает. Я предполагаю, что в struts.xml чего-то не хватает, но я не могу понять, что:
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.custom.i18n.resources" value="ApplicationResources,DatabaseResources" />
<package name="map" extends="struts-default">
<interceptors>
<interceptor name="loginintercept"
class="se.contribe.intercept.LoginInterceptor" />
<interceptor-stack name="defaultLoginStack">
<interceptor-ref name="loginintercept" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="defaultLoginStack" />
<default-action-ref name="index"></default-action-ref>
<global-results>
<result name="loginneeded">/login.jsp</result>
</global-results>
<action name="index" class="**.map.MapAction">
<result>/index.jsp</result>
</action>
<action name="login">
<result>/login.jsp</result>
</action>
<action name="loginInput" class="**.session.LoginAction">
<result type="redirectAction">
<param name="actionName">index</param>
</result>
<result name="input">/login.jsp</result>
<result name="error">/login.jsp</result>
</action>
<action name="*" class="**.map.MapAction">
<result>/index.jsp</result>
</action>
</package>
</struts>
Я немного запутал имена классов на тот случай, если мой работодатель будет возражать.