struts.xml的详细配置

1.package配置

        name属性: 定义一个包的名称,它必须唯一。

        namespace属性: 与action标签的name属性联合使用来确定一个action的访问路径

        extends属性: 指定继承自哪个包,一般值是struts-default, struts-default包是在struts-default.xml文件中声明的。

        abstract属性:它代表当前包是一个抽象的,主要是用于被继承.

2.action配置

        name属性: 与package的namespace联合使用来确定一个action的访问路径

        class属性: 用于指示当前访问的action类

        method属性: 用于指示当前的action类中的哪个方法执行

      注: 如果action配置中的class及method未找到,就会执行ActionSupport类中的execute方法,这个方法的默认返回值是"success" . 同理,如果class指向的action类继承了ActionSupport类并重写了execute方法,则method默认会执行对应action类中的execute方法.

3.result配置

        name属性: 与action类的method方法的返回值进行匹配,来确定跳转路径

        type属性: 用于指定跳转方式,

                    dispatcher请求转发(默认值).针对jsp页面

                    redirect请求重定向.针对jsp页面

                    chain,类似于请求转发,但它针对于action跳转

                    redirectAction, 类似于重定向,但针对于action

4.简单示例:

  <package name="p1" extends="struts-default">

            <action  name="" class=""  method="">

                   <result  name="">/ </result>

                   <result  name=""  type="">/</result>

           </action>

   </package>

5.一些补充

  (1)使用*通配符简化action配置

        适用于相同action类下的不同method的action配置问题,原则上不建议使用过多的*号,它带来程序阅读障碍,不便于理解.

            示例:

              <action name="product_*" class="com.web.action.ProductAction" method="{1}"></action>

                    method后面的{1}会获取到第一个*号传来的值.

               在浏览器输入http://localhost:8080/项目名/product_add ,调用的就是add方法.

               在浏览器输入http://localhost:8080/项目名/product_del ,调用的就是del方法.

               在浏览器输入http://localhost:8080/项目名/product_find ,调用的就是find方法.

    (2)在<package>下创建全局result,全局result面向当前package下的所有action配置

        当action类的方法返回值在action配置中匹配不到result的时候,,就会去package下找全局result.

   

(3)在struts.xml文件中常见的定义常量

    <constant name="struts.i18n.encoding" value="UTF-8"/> 可以帮助我们解决post请求乱码问题

    <constant name="struts.action.extension" value="action"/> 指定访问struts2框架路径的扩展名

    <constant name="struts.devMode" value="true">配置这项后,它会提供更加详细报错信息,以及在struts.xml文件修改后不在需要重启服务器



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值