【张冰Struts2学习笔记】0501.struts.xml配置详解之四 Action配置1

struts.xml 配置详解之四 Action 配置1

1.      Action 配置

1.1Action 映射

action 元素的属性

属性名称

是否必须

说明

  name

  action 的名字,用于匹配请求URI

  class

  Action 实现类的完整类名

  method

  执行Action 时调用的方法

  converter

  用于action 的类型转换器的完整类名

action 配置示例:

代码清单 1struts.xml 片段

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

      < action name = "login" class = "com.coderdream.action.LoginAction">

           < result name = "success"> /msg/loginSuc.jsp </ result >

           < result name = "input"> /msg/loginFail.jsp </ result >

      </ action >

</ package >

注意,

1、 actionname 属性是必须的,其他属性是可选的。

2、 name 中默认不能有/ (斜线),虽然可以修改常量来打开这个功能,但是强烈建议不要这样做,通过命名空间可以实现类似的功能。

代码清单 2struts.xml 片段

< constant name = "struts.enable.SlashesInActionNames" value = "true" />

3、 名字中尽量不要使用点号(. )和连字符(- ),否则可能出现一些莫名其妙的问题。

1.2 、使用 method 属性

新建一个TestAction 类,其中包含增删改查方法。

代码清单 3TestAction 片段

public class TestAction extends ActionSupport {

      public String add() {

           System.out .println("Add 方法被调用 " );

           return SUCCESS ;

      }

 

      public String delete() {

           System.out .println("delete 方法被调用 " );

           return SUCCESS ;

      }

 

      public String update() {

           System.out .println("update 方法被调用 " );

           return SUCCESS ;

      }

 

      public String query() {

           System.out .println("query 方法被调用 " );

           return SUCCESS ;

      }

}

actionmethod 配置:

代码清单 4struts.xml 片段

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

      < action name = "add" class = "com.coderdream.action.TestAction"

           method="add" >

           < result name = "success" > /msg/add.jsp </ result >

      </ action >

 

      < action name = "delete" class = "com.coderdream.action.TestAction"

           method="delete" >

           < result name = "success" > /msg/delete.jsp </ result >

      </ action >

 

      < action name = "update" class = "com.coderdream.action.TestAction"

           method="update" >

           < result name = "success" > /msg/update.jsp </ result >

      </ action >

 

      < action name = "query" class = "com.coderdream.action.TestAction"

           method="query" >

           < result name = "success" > /msg/query.jsp </ result >

      </ action >

</ package >

jsp 调用代码:

代码清单 5main.jsp 片段

< a href = " <%= path %> /add.action" > 增加 </ a >

< br />

< a href = " <%= path %> /delete.action" > 删除 </ a >

< br />

< a href = " <%= path %> /update.action" > 修改 </ a >

< br />

< a href = " <%= path %> /query.action" > 查询 </ a >

< br />

1.3 、 动态方法调用

动态方法调用(Dynamic Method InvocationDMI )是在action 的名字中使用感叹号(! )来标识要调用的方法名,其语法格式为:

actionName.methodName.action

action 不配置method 属性,4 个方法返回同一个结果。

代码清单 6struts.xml 片段

< action name = "test" class = "com.coderdream.action.TestAction" >

      < result name = "success" > /msg/operateSuc.jsp </ result >

</ action >

jsp 调用代码:

代码清单 7main.jsp 片段

< a href = " <%= path %> /test!add.action" > 增加 </ a >

< br />

< a href = " <%= path %> /test!delete.action" > 删除 </ a >

< br />

< a href = " <%= path %> /test!update.action" > 修改 </ a >

< br />

< a href = " <%= path %> /test!query.action" > 查询 </ a >

< br />

运行结果(结果页面相同,后台显示执行的方法不同):


 

我的联系方式: 85337464

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值