Struts2.0初学者教程:运行环境与第一个程序

需积分: 0 0 下载量 171 浏览量 更新于2024-09-20 收藏 83KB DOC 举报
"Struts2.0笔记" Struts2.0是一个流行的开源MVC框架,用于构建基于Java的企业级Web应用程序。本笔记主要涵盖了在MyEclipse6.0集成开发环境中配置Struts2.0运行环境以及创建并运行一个简单的Struts2.0程序的步骤。 首先,我们需要配置MyEclipse中的JDK。在`Preference` -> `Java` -> `Installed JREs`中,填入JDK的安装路径,确保开发环境支持Java编程。接着,配置Tomcat服务器,进入`ApplicationServers`,选择Tomcat并填写完整的Tomcat安装路径。在Tomcat的JDK选项中选择已配置的JDK版本,并将Tomcat的`Launch`属性设置为`runmode`,以便在MyEclipse中顺利运行。 开发Struts2.0应用时,需要引入一系列的JAR包,包括: 1. Commons-logging-1.0.4:提供日志服务支持。 2. Freemarker-2.3.0:FreeMarker是一个模板引擎,用于生成动态HTML或其他格式的文档。 3. Ognl-2.6.11:Object-Graph Navigation Language,用于表达对象图导航的表达式语言。 4. Struts2-core-2.0.11:Struts2的核心库,包含主要的框架组件。 5. Xwork-2.0.4:XWork是Struts2的基础,提供了Action和Interceptor等核心概念。 接下来,我们创建一个简单的运行程序。开始时,创建一个JSP页面,表单中`action`属性设为"login.action",这是Struts2.0的特定写法,表明表单提交后将调用名为"login"的Action。 Action类是Struts2中的关键组件,它是一个普通的Java类,通常与业务逻辑相关联。例如,创建一个名为`LoginAction`的类,包含以下代码: ```java public class LoginAction { public String execute() throws Exception { return "success"; // 执行成功后返回字符串"success" } } ``` 在`src`目录下创建`Struts.xml`配置文件,它是Struts2的配置中心,定义了Action与结果页面之间的映射关系。示例配置如下: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="struts2" extends="struts-default"> <action name="login" class="com.text.action.LoginAction"> <!-- 对应表单中的action属性 --> <result>/Result.jsp</result> <!-- 表示执行完action后跳转到的页面 --> </action> </package> </struts> ``` 最后,配置`web.xml`文件,设置Struts2的Filter。Struts2通过Filter来拦截请求并进行处理: ```xml <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> ``` 至此,一个基本的Struts2.0应用程序就搭建完成了。当用户提交表单时,Struts2框架会根据`Struts.xml`中的配置调用`LoginAction`,执行`execute()`方法,然后返回结果页面`/Result.jsp`。在整个过程中,Struts2的核心功能包括Action映射、结果转发、依赖注入以及强大的拦截器机制,使得开发者可以方便地实现业务逻辑和视图的分离,提高了代码的可维护性和可扩展性。