`
lzstone
  • 浏览: 92638 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

struts2的配置文件global-results注意事项

    博客分类:
  • java
阅读更多

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也只是存在一个包的全局

分享到:
评论
1 楼 guanchuangsheng 2010-08-20  
我的情形和你的差不多。
<include file="struts_board.xml" />
	<include file="struts_article.xml" />
	<include file="struts_reply.xml" />

	<constant name="struts.custom.i18n.resources" value="message" />
	<package name="struts2" extends="struts-default">
		<global-results>
			<result name="login">/bbs/userLogin.jsp</result>
		</global-results>


当操作<include file="struts_article.xml" />中的action时会提示找不到login。我在<include file="struts_article.xml" />中的过滤器之前加的
<global-results>
			<result name="login">/bbs/userLogin.jsp</result>
		</global-results>
		<interceptors>
			<interceptor name="loginInterceptor"
				class="org.nullhome.bbs.interceptor.LoginInterceptor">
			</interceptor>
			<interceptor name="adminInterceptor"
				class="org.nullhome.bbs.interceptor.AdminInterceptor">
			</interceptor>


tomcat启动时提示错误。加在他之后,启动时不再提示错误了,但是仍旧是找不到login

请问您知道怎么回事么?

相关推荐

Global site tag (gtag.js) - Google Analytics