(1) struts2框架处理流程
1. 浏览器发送一个请求。
2. 核心控制器FilterDispatcher根据请求决定调用合适的Action。 3. 拦截器(Intercepter)自动对请求应用通用功能,如验证等。
4. 回调Action的execute方法,该execute方法根据请求的参数来执行一定的操作。 5. Action的execute方法处理结果信息将被输出到浏览器中,支持多种形式的视图。
Struts框架就是一个MVC结构的web框架
框架:开发好的模型,结构已经搭建完成,已经经过性能或扩展性等非常好的调试和验证,我们只需要在符合该结构基础上实现具体的业务代码即可。
Struts2体系结构 Struts2的体系与Struts1.X体系的差别非常大,因为Struts2使用了WebWork的设计核心,而不是Struts1的设计核心。 Struts2中大量使用拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与Servlet API分离。
Struts2开发步骤:
1.创建web工程
2.添加Struts2框架所必须的jar包
版本:2.2.3版本:
commons-fileupload-1.2.2.jar commons-io-2.0.1.jar commons-lang-2.5.jar commons-logging-1.1.1.jar freemarker-2.3.16.jar javassist-3.11.0.GA.jar
ognl-3.0.1.jar struts2-core-2.2.3.jar xwork-core-2.2.3.jar
3.配置web.xml文件
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
4.编写LoginAction.java(Struts2的Action) 5.添加并配置Struts2的struts.xml配置文件
6.创建jsp页面
7.部署运行项目进行测试 struts.xml深入配置
Bean配置:
Struts2 框架是一个高度可扩展的框架,框架的核心组件并不是以硬 代码的方式写入代码中,而是通过自己的IOC(控制反转)容器来管 理框架的核心组件。通过配置的方式管理核心组件,那么开发者就可 以很方便的扩展。
struts-default.xml中配置了大量的bean,这些都是框架的核心组件。(对于绝大部分 struts2应用而言,我们无需自己在配置文件中定义Bean) constant常量配置: 在struts.xml中配置常量是一种指定框架属性的一种方式,类似完成在 struts.properties属性文件中配置属性。
属性的配置除了在struts.properties和struts.xml中配置,还可以在
web.xml中配置。方式是在
.ng.filter.StrutsPrepareAndExecuteFilter
设置structs2的模式是不是开发模式,这样可以在开发代码的时候,不用重新刷新了。
Struts2在加载配置文件的时候有个顺序: struts-default.xml、struts-plugin.xml、struts.xml、struts.properties、web.xml
注意:如果在多个配置文件中配置了同样的属性,后面的就会覆盖前面的。 推荐:在struts.xml中配置常量或在struts.properties中配置属性方式。
Package包配置 struts2中核心就是拦截器和Action等,框架使用包来管理它们。每个包就是多个Action、多个拦截器、多个拦截器引用的集合。
属性: name: 必填 指定包的名字,是被其他包引用的key extends: 可选 指定该包继承其他包,继承Action和拦截器等。 namespace: 可选 指定该包的命名空间(namespace=\) abstract: 可选 指定该包是否是抽象包,抽象包中不能包含action标签
命名空间的配置(namespace=“/ascent”) 考虑到web应用中可能出现同名的Action,struts2用命名空间来区分, 同一个命名空间中不可以有同名的Action,不同的命名空间中可以有相 同名字的Action。 注意:
当某个包下指定了namespace属性,该包下的所有的Action处理的URL应该是 “命名空间+Action”的name。
如果包没指定namespace属性,那就是默认的命名空间“”。
配置文件包含配置 struts.xml配置文件是Struts2框架的核心配置文件,该文件负责管理框 架的业务控制器Action,在大部分应用中,随着应用规模的增加,系统中
的Action数量会大量增加,导致struts.xml配置文件变的非常臃肿。为了避 免它的庞大、臃肿,提高struts.xml文件的可读性,我们可以将其分解成 多个配置文件,然后在struts.xml中将其他的包含进来。
struts.xml文件中可以通过
例如
a. Action配置
Action配置 使用通配符(使用通配符配置)
b. 另外一种动态调用一个action类中不同方法的方式
访问的url上使用 “!方法名.后缀” 方式 例如
一个UserAction.java中 有如下方法
execute() add() update() delete() 等方法。
配置在struts.xml中的action名字为 name=userAction 访问url可以使用如下方式访问这个类的不同方法:
url=“userAction.action” 调用UserAction类中的execute()方法 url=“userAction!add.action” 调用UserAction类中的add()方法
url=“userAction!update.action” 调用UserAction类中的update()方法 url=“userAction!delete.action” 调用UserAction类中的delete()方法
Result结果配置(Struts2支持的结果类型)
相关推荐: