struts.xml
<struts>
<include file="GoogleSuggest.xml" />
<include file="login.xml"></include>
<include file="book.xml"></include>
<include file="upload.xml"></include>
<package name="struts2" namespace="/" extends="struts-default">
<global-results>
<result name="index">/index.jsp</result>
</global-results>
<default-action-ref name="index" />
<action name="index" class="org.lzstone.index.action.IndexAction">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
IDE报错,发现将<global-results>放置到<default-action-ref name="index" />之下错误消失,发现default的优先级别还是很高的。
写了一个简单拦截器
public class LoginInterceptor implements Interceptor{
@Override
public void destroy() {
System.out.println("最终离开Interceptor");
}
@Override
public void init() {
System.out.println("开始进入Interceptor");
}
@Override
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext act = invocation.getInvocationContext();
Map session = act.getSession();
Object object = session.get("user");
if(null != object){
return invocation.invoke();
}
return "index";
}
}
失败返回index,拦截器注册在
<struts>
<package name="login" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="loginInterceptor"
class="org.lzstone.interceptor.LoginInterceptor" />
</interceptors>
<action name="login" class="org.lzstone.login.action.LoginAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
<interceptor-ref name="defaultStack" />
<interceptor-ref name="loginInterceptor" />
</action>
</package>
</struts>
测试的时候发现无法发现index,global-results下面我已经有index
后再在login.xml下面加入
<global-results>
<result name="index">/index.jsp</result>
</global-results>
运行成功
结果发现struts2中的package限制还是很大的,global-results也只是存在一个包的全局