Struts2一个面向动作的框架
yyz0612
11年前
框架是一个结构化的软件,尽量将特定领域的日常任务和具体问题的处理流程抽象化,然后提供一个平台,基于这个平台可以更快地构建web应用程序。
1. 自动化常见任务
2. 提供了架构解决方法
Struts2是一个面向动作的框架,其核心的关键抽象是动作。
Struts2是实现MVC设计模式的第二代web应用程序框架,由Apache组织推出。
MVC设计模式的3个关注点:模型、视图和控制器。在struts2中,它们分别通过action,result,FilterDispatcher实现。如下图所示:

控制器:FilterDispatcher
控制器在最前端,是请求处理过程中第一个被触发的组件。
控制器的工作是将请求映射到动作。
FilterDispatcher是一个Servlet过滤器,它检查每一个传入请求,决定哪个动作来处理这个请求。你只需要告诉框架哪个请求URL需要映射到哪个动作即可。
可以通过基于XML的配置文件或Java注解来完成这个任务。
模型:Action
模型代表了该应用的核心功能,她负责处理用户的数据和实现业务逻辑。同时,模型还为视图的显示提供数据,并可被多个视图所共用。
视图:Result
视图主要指与用户交互的界面,也即应用程序的外观。视图可以接收用户的输入,但它并不包括任何实际的业务处理,它只是将数据转交给控制器。同时,视图还负责展现模型传递给用户的数据,当后台模型更新数据时,视图也应当随之更新它的显示。
一个简单的struts实例
(1)创建Tomcat工程
(2)添加Struts包
本实例没有使用eclipse平台下的struts插件,因此需要手动导入struts的二进制包放到Tomcat工程中。
把所有的*.tld文件放到新建的Tomcat工程的 TestStruts 的\ TestStruts \WEB-INF目录下,把所有的*.jar文件放到\TestStruts\WEB_INF\lib目录下。这样Struts包添加完成。
(3)实例功能描述
1)进入首页,hello.jsp
2)通过单击链接HelloWorld_1和HelloWorld_2,分别进入HelloWorld_1.jsp页面和HelloWorld_2.jsp页面。这其实就是一个用Struts的控制器来控制页面转发的功能的实现。程序非常简单甚至可以通过简单的HTML标记语言实现,这里主要为了讲解Struts的控制器如何在控制页面转换中工作。
(4)设计视图
hello.jsp

HelloWorld_1.jsp

HelloWorld_2.jsp

(5)设计控制器


通过以上代码可以看到其实控制器就是通过读取从request传递过来的参数来判断页面的转发方向的,而这个参数是从hello.jsp传递过来的。
(6)编写配置文件
web.xml文件


struts-config.xml文件

</div> </span>
控制器在最前端,是请求处理过程中第一个被触发的组件。
控制器的工作是将请求映射到动作。
FilterDispatcher是一个Servlet过滤器,它检查每一个传入请求,决定哪个动作来处理这个请求。你只需要告诉框架哪个请求URL需要映射到哪个动作即可。
可以通过基于XML的配置文件或Java注解来完成这个任务。
模型:Action
模型代表了该应用的核心功能,她负责处理用户的数据和实现业务逻辑。同时,模型还为视图的显示提供数据,并可被多个视图所共用。
视图:Result
视图主要指与用户交互的界面,也即应用程序的外观。视图可以接收用户的输入,但它并不包括任何实际的业务处理,它只是将数据转交给控制器。同时,视图还负责展现模型传递给用户的数据,当后台模型更新数据时,视图也应当随之更新它的显示。
一个简单的struts实例
(1)创建Tomcat工程
(2)添加Struts包
本实例没有使用eclipse平台下的struts插件,因此需要手动导入struts的二进制包放到Tomcat工程中。
把所有的*.tld文件放到新建的Tomcat工程的 TestStruts 的\ TestStruts \WEB-INF目录下,把所有的*.jar文件放到\TestStruts\WEB_INF\lib目录下。这样Struts包添加完成。
(3)实例功能描述
1)进入首页,hello.jsp
2)通过单击链接HelloWorld_1和HelloWorld_2,分别进入HelloWorld_1.jsp页面和HelloWorld_2.jsp页面。这其实就是一个用Struts的控制器来控制页面转发的功能的实现。程序非常简单甚至可以通过简单的HTML标记语言实现,这里主要为了讲解Struts的控制器如何在控制页面转换中工作。
(4)设计视图
hello.jsp

HelloWorld_1.jsp

HelloWorld_2.jsp

(5)设计控制器


通过以上代码可以看到其实控制器就是通过读取从request传递过来的参数来判断页面的转发方向的,而这个参数是从hello.jsp传递过来的。
(6)编写配置文件
web.xml文件


struts-config.xml文件

</div> </span>