Struts2 的深入理解与使用(二)---配置文件详解(一)

本文详细介绍了Struts2框架中的配置细节,包括结果配置、全局结果配置、命名空间使用、异常处理机制等内容,并提供了访问Servlet API的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Result

  1)name可以是定义的任意字符,和Action返回的结果一致就好

    2)result配置一般是使用绝对路径,绝对路径以“/”开头

    3) 跳转

           (一)页面跳转

                重定向(dispatcher)type="dispatcher"

         转发(redirect)  type="redirect"

      (二)跳转到另外一个action

                 重定向  type="chain"

                 转发    type="redirectAction"

2.全局结果

   1)可以满足多个Action共享一个结果

   2)怎么使用:

<struts>    
    <package name="main" namespace="/main" extends="struts-default">    
       <span style="color:#FF0000;"> <global-results>    
            <result name="main">/main.jsp</result>    
        </global-results>    </span>
    </package>    
    <package name="user" namespace="/user" <span style="color:#FF0000;">extends="main"</span>>    
        <action name="deleteUser" class="com.wj.struts2.action.UserAction" method="deleteUser">    
            <result name="success">/success.jsp</result>    
            <result name="failue">/failure.jsp</result>    
        </action>    
    </package>    
</struts>  
配置全局结果集时需要注意以下两个问题
1.访问同一个包内的全局结果集,直接在action中return这个结果集的name即可。
2.访问的全局结果集如果与action不在同一个包中,则action所在的包要继承全局结果集所在的包。

注意:当所有Action需要共享某个结果时,可以定义为全局结果。比如,类似登录页面这样的公共页面、错误页面、异常页面

3.nameSpace命名空间

   1)命名空间为空,或者明明空间为“/”时,不管路径嵌套的有多深,只要Action的名字匹配上就可以

   2)有命名空间,一般以模块进行命名,比如是用户登陆的控制,可以取名为:namespace="/user",建议"/"要加上,需要注意的是:在form表单里的action的路径也要加上"/user/action的名字"

4.根据模块拆分struts.xml文件

                                                         


5.异常机制

        是什么?

              指定在Action方法抛出指定异常的时候跳转到哪个指定的结果视图

       怎么用?      

<global-exception-mappings>
            <exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>

6.访问Servlet  API

     (一)Struts2提供的方法

            获取request

        Map<String, Object> request = (Map<String, Object>) ActionContext.getContext().get("request");
               获取Session             
        Map<String, Object> session = (Map<String, Object>) ActionContext.getContext().getSession();
               获取application

       Map<String, Object> application = (Map<String, Object>) ActionContext.getContext().getApplication();
         (二)实现RequestAware,SessionAware,ApplicationAware接口



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值