Struts2是一个强大的Java web应用程序框架,它遵循Model-View-Controller (MVC)设计模式,使得开发人员能够更高效地构建动态、交互式的Web应用。以下是对Struts2使用的一些关键知识点的详细说明: 1. **核心组件与依赖**: - **Struts2-core**:这是Struts2框架的基础,包含了核心处理类和API。 - **Xwork**:Xwork是Webwork的前身,Struts2在其基础上构建,提供了动作调度、类型转换、拦截器等功能。 - **OGNL (Object-Graph Navigation Language)**:Struts2使用OGNL作为表达式语言,用于在Action和视图之间传递数据。 - **Freemarker**:一种模板引擎,用于生成动态HTML或其他格式的输出,常用于Struts2的UI标签。 - **Commons-logging**:ASF的日志包,允许Struts2灵活地支持各种日志框架,如Log4j。 2. **Struts2的部署与配置**: - **创建WEB项目**:首先需要创建一个标准的Java Web项目。 - **导入jar包**:将上述依赖的jar包添加到项目的类路径中。 - **配置web.xml**:在`web.xml`中配置`FilterDispatcher`或`StrutsPrepareAndExecuteFilter`,后者是2.1.3版本之后的推荐配置,负责拦截并处理所有的HTTP请求。 ```xml <!-- 配置Struts2 Filter --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 3. **编写Action**: - **Action类**:每个功能对应一个Action类,通常让Action实现`com.opensymphony.xwork2.Action`接口,并重写`execute()`方法。 - **Action接口**:提供了一些预定义的常量,如SUCCESS、NONE、ERROR、INPUT、LOGIN,表示动作执行的不同状态。 4. **结果页面**: - **Action返回值与结果页面**:Action的`execute()`方法返回一个字符串,这个字符串与`struts.xml`中的配置相关联,决定哪个结果页面会被渲染。 5. **struts.xml配置**: - **配置Action**:在`struts.xml`中定义Action的名称、对应的类、以及结果映射,如: ```xml <package name="default" namespace="/" extends="struts-default"> <action name="helloWorld" class="com.struts2.action.HelloWorldAction"> <result name="success">/success.jsp</result> <result name="error">/error.jsp</result> </action> </package> ``` 在这个例子中,如果`HelloWorldAction`的`execute()`方法返回"success",那么用户将会看到`/success.jsp`页面;如果返回"error",则会看到`/error.jsp`。 6. **Struts2的工作流程**: - 当用户发起HTTP请求时,`StrutsPrepareAndExecuteFilter`拦截请求。 - Struts2通过配置解析请求,找到对应的Action。 - 执行Action的`execute()`方法,根据返回值决定显示哪个结果页面。 - 使用OGNL将Action的属性暴露给视图层,允许在JSP页面中直接访问Action的属性。 Struts2通过提供统一的请求处理机制、丰富的插件体系、灵活的数据绑定和强大的表单验证功能,极大地简化了Java web应用的开发。理解并掌握这些知识点,将有助于构建稳定、可扩展的Web应用。
剩余15页未读,继续阅读
- 粉丝: 1
- 资源: 20
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于PythonSpleeter的戏曲音频处理系统.zip
- (源码)基于Spring Boot的监控与日志管理系统.zip
- (源码)基于C++的Unix V6++二级文件系统.zip
- (源码)基于Spring Boot和JPA的皮皮虾图片收集系统.zip
- (源码)基于Arduino和Python的实时歌曲信息液晶显示屏展示系统.zip
- (源码)基于C++和C混合模式的操作系统开发项目.zip
- (源码)基于Arduino的全球天气监控系统.zip
- OpenCVForUnity2.6.0.unitypackage
- (源码)基于SimPy和贝叶斯优化的流程仿真系统.zip
- (源码)基于Java Web的个人信息管理系统.zip