在说别的前,先介绍一下Sturts中的Action。
问题:Action到底是什么?
Action是用户请求和业务逻辑之间的桥梁,每一个Action都充当着客户的一项业务代理。多数的MVC框架中的Control层,都是一个Java对象,按照惯例,我们通常会把这个层面上的对象称为Action。
Action这个类,通常由用户提供,该控制器负责接受来自ActionServlet的请求,并根据请求调用模型的业务逻辑方法处理请求,并将处理结果集返回给JSP页面显示。
(在这里有得说一下ActionServlet了:ActionServlet这个类是Struts内置的核心控制器,负责拦截来自用户的请求,然后根据系统配置将请求传给相应的Action对象。 Struts的启动一般都是从加载ActionServlet开始,因此他在Struts中充当的是中央控制器的角色)
Struts对Model、Controller、View都提供了相应的组件。
其中Model部分是有ActionForm和JavaBean组成的。其中的ActionForm用于封装用户的请求参数(ActionForm本质是一种JavaBean,是专用于传递表单数据的DTO),将其封装成ActionForm对象,然后该对象呗ActionServlet转发给Action,Action再根据ActionForm中的请求参数处理用户的请求。而JavaBean则封装了底层的业务逻辑,包括数据库的访问。
Action的生命周期:
该图来自Struts2的Reference,我们从中可以看到很多不熟悉的名词,这些都是Struts2的Control层的重要元素
在Struts2中Action与其他传统的MVC框架不同,它使用了xwork的Action来构造Control层。我们先看一下Action接口的源码:
我们定义Action类的方法有两种,一种是实现Action接口,一种是自定义
先介绍第一种,截图如下:
(execute方法,返回的字符串是可以自己修改的。我们根据这个字符串来配置结果视图,进行请求的转发)
第二种方法:
给大家看一下返回的字符串的用处,如何配置请求转发的视图:
好了,今天就到这里,写的不好,别见怪哈