struts2中Action类的配置

**Action类的三种写法**

 

* Action类就是一个POJO类

* 什么是POJO类,POJO(Plain Ordinary Java Object)简单的Java对象.简单记:没有继承某个类,没有实现接口,就是POJO的类。

* Action类可以实现Action接口

* Action接口中定义了5个常量,5个常量的值对应的是5个逻辑视图跳转页面(跳转的页面还是需要自己来配置),还定义了一个方法,execute方法。

* 大家需要掌握5个逻辑视图的常量

* SUCCESS                -- 成功.

* INPUT                        -- 用于数据表单校验.如果校验失败,跳转INPUT视图.

* LOGIN                        -- 登录.

* ERROR                        -- 错误.

* NONE                        -- 页面不转向.

* Action类可以去继承ActionSupport类(开发中这种方式使用最多)

* 设置错误信息

 

**Action类的详细配置**

 

1. 通过<action>标签中的method属性,访问到Action中的具体的方法。

* 传统的配置方式,配置更清晰更好理解!但是扩展需要修改配置文件等!

* 具体的实例如下:

* 页面代码

* <a href="${pageContext.request.contextPath}/addBook.action">添加图书</a>

* <a href="${pageContext.request.contextPath}/deleteBook.action">删除图书</a>

 

* 配置文件的代码

<package name="demo2" extends="struts-default" namespace="/">

            <action name="addBook" class="cn.itcast.demo2.BookAction" method="add"></action>

            <action name="deleteBook" class="cn.itcast.demo2.BookAction" method="delete"></action>

    </package>

 

* Action的代码

public String add(){

System.out.println("添加图书");

return NONE;

}

public String delete(){

System.out.println("删除图书");

return NONE;

}

 

2. 通配符的访问方式:(访问的路径和方法的名称必须要有某种联系.)  通配符就是 * 代表任意的字符

* 使用通配符的方式可以简化配置文件的代码编写,而且扩展和维护比较容易。

* 具体实例如下:

* 页面代码

<a href="${pageContext.request.contextPath}/order_add.action">添加订单</a>

<a href="${pageContext.request.contextPath}/order_delete.action">删除订单</a>

 

* 配置文件代码

* <action name="order_*" class="cn.itcast.demo2.OrderAction" method="{1}"></action>

 

* Action的代码

public String add(){

System.out.println("添加订单");

return NONE;

}

public String delete(){

System.out.println("删除订单");

return NONE;

}

 

* 具体理解:在JSP页面发送请求,http://localhost/struts2_01/order_add.action,配置文件中的order_*可以匹配该请求,*就相当于变成了add,method属性的值使用{1}来代替,{1}就表示的是第一个*号的位置!!所以method的值就等于了add,那么就找到Action类中的add方法,那么add方法就执行了!

 

3. 动态方法访问的方式(有的开发中也会使用这种方式)

* 如果想完成动态方法访问的方式,需要开启一个常量,struts.enable.DynamicMethodInvocation = false,把值设置成true。

* 注意:不同的Struts2框架的版本,该常量的值不一定是true或者false,需要自己来看一下。如果是false,需要自己开启。

* 在struts.xml中开启该常量。

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

 

* 具体代码如下

* 页面的代码

* <a href="${pageContext.request.contextPath}/product!add.action">添加商品</a>

* <a href="${pageContext.request.contextPath}/product!delete.action">删除商品</a>

 

* 配置文件代码

* <action name="product" class="cn.itcast.demo2.ProductAction"></action>

* Action的类的代码

public class ProductAction extends ActionSupport{

public String add(){

System.out.println("添加订单");

return NONE;

}

public String delete(){

System.out.println("删除订单");

return NONE;

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值