我有一个intercetpor,用于在提供请求的操作之前检查用户是否已登录。我曾尝试将此设置为所有操作的默认设置。对于除一个之外的所有地址,这就像一个魅力。当我因为某些原因进入根URL "http://localhost:8080/map/"
时,拦截器不会触发。我猜有什么我失踪的struts.xml,但我无法弄清楚:在struts2中使用拦截器捕获根的问题
<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>
我已混淆的类名称了一下,以防万一我的雇主会反对。
请求http:// localhost:8080/map /调用您的索引操作?如果是这样,那个拦截器是为了这个请求而被调用的? – 2011-04-20 14:23:32