struts2的简单例子



Struts2是一个强大的Java EE应用程序框架,主要用于构建Web应用程序。它是Apache软件基金会的Jakarta项目的一部分,基于MVC(Model-View-Controller)设计模式,为开发者提供了更灵活的控制层选项。本教程将深入浅出地介绍Struts2的基础知识,通过一个简单的实例帮助初学者理解其工作流程。 我们需要了解Struts2的核心概念: 1. **Action类**:在Struts2中,Action类是业务逻辑的载体。它接收用户请求,执行相应的操作,并返回结果到视图。Action类通常继承自`org.apache.struts2.dispatcher.ng.ExecuteAction`或实现了`com.opensymphony.xwork2.Action`接口。 2. **配置文件**:Struts2使用XML配置文件(struts.xml)来定义Action类与URL之间的映射,以及Action执行后跳转的页面。配置文件还可以定义拦截器、结果类型等。 3. **拦截器**:拦截器是Struts2中的一个重要特性,它们在Action执行前后运行,可以实现如日志记录、权限检查等功能。通过在struts.xml中配置拦截器栈,我们可以定制处理流程。 4. **结果类型**:Action执行后,会根据配置的结果类型决定如何呈现结果。常见的结果类型有dispatcher(用于转发到JSP页面)、stream(用于下载文件)等。 5. **ValueStack**:Struts2使用ValueStack来存储Action属性和OGNL(Object-Graph Navigation Language)表达式,方便在视图层访问数据。 6. **OGNL**:OGNL是一种强大的表达式语言,用于在Action和视图之间传递数据。例如,`${myVariable}`就可以在JSP页面上获取Action中的myVariable属性值。 现在,让我们通过一个简单的例子来实践这些概念: 假设我们创建了一个名为`HelloWorldAction`的Action类,如下: ```java public class HelloWorldAction extends ActionSupport { private String message; public String execute() { message = "Hello, Struts2!"; return SUCCESS; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } ``` 在struts.xml中配置这个Action: ```xml <package name="default" namespace="/" extends="struts-default"> <action name="helloWorld" class="com.example.HelloWorldAction"> <result name="success">/HelloWorld.jsp</result> </action> </package> ``` 创建一个HelloWorld.jsp页面,展示从Action中获取的数据: ```jsp <%@ taglib prefix="s" uri="/struts-tags" %> <html> <body> <h1><s:property value="message"/></h1> </body> </html> ``` 当用户访问`http://yourserver/yourapp/helloWorld.action`时,Struts2框架会找到对应的Action,执行`execute()`方法,然后将结果转发到HelloWorld.jsp,展示“Hello, Struts2!”。 以上就是一个简单的Struts2应用实例,它涵盖了Action、配置文件、结果类型和OGNL的基本使用。对于初学者来说,理解和实践这个例子是学习Struts2的第一步。随着对框架的深入理解,你可以逐步探索更复杂的功能,如国际化、文件上传、Ajax集成等,从而更好地利用Struts2构建功能丰富的Web应用。















































- 1

- a30478930552013-11-27看了这个,立马就懂了struts2的原理好用,5分

- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- CAD2007经典版第1章-入门基础.ppt
- 项目管理经验集锦(20211102053025).pdf
- 神经网络和应用.ppt
- 项目管理经验交流材料样本.doc
- 算法合集之分治算法在树的路径问题中的应用.pptx
- 整套施工进度计划网络图、横道图、平面图及相关附表.doc
- 最新网络技术在小学数学中的应用.doc
- 牛顿-拉夫逊迭代法极坐标潮流计算C语言程序.doc
- 基于PLC的生活热水控制系统(修改版).docx
- 工程项目管理----项目组织PPT课件.ppt
- 数控车削加工编程.ppt
- 精编大学生网络购物状况问卷调查报告参考范文.doc
- 在广电网络有限公司-分公司成立大会暨挂牌仪式上的讲话.pdf
- 制冷系统安全操作手册范本.doc
- 基于嵌入式的智能家居控制系统.pptx
- 高教大数据平台方案PPT课件.pptx


