【张冰Struts2学习笔记】0502.struts.xml配置详解之五 Action配置2

 

struts.xml 配置详解之五 Action 配置2

 

1.      Action 配置

1.1method 属性与动态方法调用注意点

1method 属性可以自动匹配doXXX() 方法,如doAdd() ,访问方式一样,这样的好处是可以使用Java 的关键字,如default ,可以创建doDefault() 方法;

2 、如果同一个Action 的不同方法使用的是相同的配置(同样的拦截器、同样的result 的映射),那么可以使用动态方法调用;

3 、如果同一个Action 的不同方法使用的是配置不同的拦截器、不同的result 的映射,那么可以method 属性,为同一个Action 配置多个别名;

4 、动态方法可以修改配置禁用,因为它可能被恶意访问;

5 、动态方法调用与通配符方法有所重叠。

1.2 、 模拟 Struts1ForwardAction

jsp 中将所有URL 都指向action ,而不是指向jsp ,可以通过如下方式实现。

代码清单 1struts.xml 片段

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

<!-- 服务器跳转,返回的地址为 xxx.action -->

      < action name = "main" >

           < result> /main.jsp </ result>

      </ action>

</ package>

jsp 中的调用:

代码清单 2operateSuc.jsp 片段

<a href = " <%= path %> /main.action" > 返回主页 </a >

实现原理:

1、 class 属性省略,则默认使用com.opensymphony.xwork2.ActionSupport 类;

2、 当请求“/main.action ”时,框架将创建ActionSupport 实例,调用该实例的execute() 方法,返回“success ”,于是请求被导向到”/main.jsp” 页面。

1.3 、 默认的 action

如果请求的action 不存在,结果将是HTTP 404 错误,我们可以通过配置默认的action 匹配不存在的action

代码清单 3struts.xml 片段

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

      <!-- 配置默认的 action ,所有不存在的 action 都会匹配此 action -->

      < default-action-ref name = "hello" />

 

      < action name = "hello" >

           < result > /error.jsp </ result >

      </ action >

</ package >

注意:

1、 default-action-ref 必须在action 元素之前;

2、 每个包中都可以有它自己的默认action ,但是每个名称空间应该只有一个默认action

3、 默认action 只对访问action 有效,非action 同样会看到HTTP 404 错误;

4、 推荐的处理方式 是为整个Web 应用程序指定默认页面,在web.xml 中配置如下:

代码清单 4web.xml 片段

<web-app version = "2.5" xmlns = "http://java.sun.com/xml/ns/javaee"

      xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

      xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee

      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >

      <error-page >

           <error-code >404 </error-code >

           <location >/error.jsp </location >

      </error-page >

</web-app >

 

我的联系方式: 85337464

我的博客: http://coderdream.iteye.com

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值