2024年4月17日发(作者:)

一、Struts2入门

1. 概念

什么是Struts2

Struts2 是一个用来开发 MVC 应用程序的框架.

它提供了 Web 应用程序开发过程中的一些常见问题的解决方案:

对页面导航活动进行管理

对来自用户的输入数据进行合法性验证

统一的布局

可扩展性

国际化和本地化

支持 Ajax

表单的重复提交

Struts2 VS Struts1

Struts2与Struts1 相比,在体系结构方面更优秀,具体表现在类更少,更高效,扩展更容易等。

struts2 不是从 Struts1 扩展而来的, 说它是一个换了品牌标签的 WebWork 更合适。

2. 程序

Struts2 核心就是一个 Filter,该Filter会对所有的请求进行拦截(/*)

StrutsPrepareAndExecuteFilter

StrutsPrepareFilter + StrutsExecuteFilter

Struts2 将所有的请求拦截下来,具体去访问哪个java类的方法需要读取配置文件

文件需位于工程的类路径下

实现一个 Struts 的 HelloWorld 程序

1) 将 %struts2-blank例子%WEB-INFlib 目录下所有jar包拷贝至 webprojectWEB-INFlib 中

2) 将%struts2-blank例子% 中的配置

struts2

PrepareAndExecuteFilter

struts2

/*

拷贝至webproject/WEB-INF/ 中

3) %struts2-blank例子%将WEB-INFclasses 下的 文件拷贝至工程src下

清空 标签之间的内容

4) 新建 Action 实例,

Action可以不必是实现任何接口,它是一个普通java类(pojo),从这点可以看出 Struts2 是非侵入式设计,

Action可以不依赖struts和Servlet 而独立存在

Action中至少需要定义一个方法,且方法的返回值类型必须为String

public String sayHello() {

return "success";

}

5) 在 对 Action进行配置

class="orldAction"

method="sayHello" >

/WEB-INF/

6) 在 WEB-INF 下新建jsp页面

hello

动手练习: 用 struts2 实现最简单的mvc

二、Struts2 细节

1. package 元素

配置action的组织包

name: 配置包名,用于被继承

namespace: 配置访问路径

以 /a/b/c/action 为例 搜索action的顺序为 /a/b/c -- /a/b -- /a -- /

extends: 指定继承的包

2. action 元素

1) name属性

配置action的访问名称 后缀默认为 action和”” 可以通过常量进行配置

2) class属性

配置action对应的java类,必须为完整类名

如果继承struts-default 包,默认class 为ActionSupport,该类的 execute方法默认返回 success

我们在写 Action 类时通常会选择继承ActionSupport,也就自动继承了 execute 方法,同时可以使用父类定

义的常量 SUCCESS、ERROR 等