Struts2是一个强大的MVC(模型-视图-控制器)框架,它是在WebWork的基础上发展起来的,旨在解决Struts1框架的一些局限性。Struts2的核心在于提供了一个中心控制器,即`StrutsPrepareAndExecuteFilter`(在早期版本中为`FilterDispatcher`),这个控制器对所有HTTP请求进行统一处理,使得开发者可以更方便地管理应用程序的行为。 **Struts2所需的核心JAR包:** 1. **Struts2-core**: 这是Struts2框架的基础,包含了核心的类和组件。 2. **Xwork**: Xwork是WebWork的核心,Struts2在其上构建,提供了动作调度、拦截器、转换器和验证等功能。 3. **OGNL (Object-Graph Navigation Language)**: OGNL是一种强大的表达式语言,用于在Struts2中处理对象属性的获取和设置,以及在视图层和模型层之间传递数据。 4. **FreeMarker**: Struts2的UI标签通常使用FreeMarker模板语言来生成动态HTML内容。 5. **Commons-logging**: 提供了日志记录的支持,Struts2通过它与Log4j等日志框架集成。 6. **commons-fileupload**: 用于处理HTTP多部分上传请求,如表单中的文件上传。 **编写Struts2应用的步骤:** 1. **创建WEB项目**:首先需要创建一个新的Java Web项目。 2. **导入JAR包**:将上述列出的Struts2依赖JAR包添加到项目的类路径中。 3. **配置web.xml**:在项目的`web.xml`文件中配置`StrutsPrepareAndExecuteFilter`或`FilterDispatcher`过滤器,指定它们处理所有请求。对于Struts2.1.3及更高版本,应使用`StrutsPrepareAndExecuteFilter`。 4. **编写Action**:每个功能对应一个Action类,Action类通常会实现`com.opensymphony.xwork2.Action`接口,并提供一个`execute()`方法。Action返回的结果字符串会决定后续的流程。 5. **创建结果页面**:根据Action返回的结果,准备相应的JSP或FreeMarker模板页面来展示结果。 6. **配置struts.xml**:在`WEB-INF/classes`或`src`目录下创建`struts.xml`配置文件,定义Action及其映射,包括Action的名称、类、结果和命名空间等。 在`struts.xml`配置文件中,你可以定义一个或多个包(`package`),每个包可以有多个Action配置。例如: ```xml <struts> <package name="struts2" extends="struts-default" namespace="/"> <action name="helloWorld" class="com.example.HelloWorldAction"> <result name="success">/HelloWorld.jsp</result> </action> </package> </struts> ``` 在这个例子中,`helloWorld` Action的`execute()`方法返回`success`字符串,Struts2会寻找名为`/HelloWorld.jsp`的结果页面来显示。 通过这种方式,Struts2提供了一种灵活且结构化的框架,使得开发Java Web应用变得更加简单和高效。它支持拦截器、国际化、异常处理、主题和模板等多种特性,极大地提高了代码的可维护性和复用性。在实际开发中,还需要了解如何编写Action类、使用ActionSupport和Interceptor,以及如何配置和使用Struts2的其他高级功能,如 Tiles、i18n 和 Validation 等。
剩余18页未读,继续阅读
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- js基础但是这个烂怂东西要求标题不能少于10个字才能上传然后我其实还没有写完之后再修订吧.md
- electron-tabs-master
- Unity3D 布朗运动算法插件 Brownian Motion
- 鼎微R16中控升级包R16-4.5.10-20170221及强制升级方法
- 鼎微R16中控升级包公版UI 2015及强制升级方法,救砖包
- 基于CSS与JavaScript的积分系统设计源码
- 生物化学作业_1_生物化学作业资料.pdf
- 基于libgdx引擎的Java开发连连看游戏设计源码
- 基于MobileNetV3的SSD目标检测算法PyTorch实现设计源码
- 基于Java JDK的全面框架设计源码学习项目