Struts2详解:配置与命名空间解析

需积分: 3 1 下载量 42 浏览量 更新于2024-07-31 收藏 539KB DOC 举报
"这是一份关于Struts2的详细学习笔记,涵盖了Struts2的核心概念、配置以及Action机制。笔记中包含重要的配置细节和Namespace的使用解析,旨在帮助读者深入理解Struts2框架的工作原理。" Struts2是Java Web开发中广泛应用的一个MVC框架,它简化了Web应用的开发过程,提供了强大的控制层解决方案。这份笔记基于Struts2.1及以上版本,强调了几个关键点: 1. 过滤器配置:在`web.xml`中,必须配置Struts2的过滤器`StrutsPrepareAndExecuteFilter`来拦截所有请求。在早期的Struts2.0版本中,使用的是`FilterDispatcher`,但在2.1及以后版本中,应使用新的过滤器。 ```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> ``` 2. Struts2配置文件:`Struts2`的主配置文件`Struts.xml`应放置在项目的`src`目录下,该文件用于定义动作(Actions)、结果(Results)以及包(Packages),从而控制应用程序的行为。 3. 命名空间(Namespace):Namespace在Struts2中扮演着路由请求的重要角色。如果在`Struts.xml`中定义了一个Namespace为"/"的Action,那么请求将会根据完整的URL路径查找对应的动作。例如,如果请求路径是`http://localhost:8080/Struts2/Hello/Hello.action`,系统会先在Namespace为"/Hello"的包里寻找`Hello.action`,如果没有找到,再在默认的(即Namespace为空)包中查找。 ```xml <package name="Hello" extends="struts-default"> <action name="Hello"> <result>/Hello.jsp</result> </action> </package> ``` 4. Action实现:Struts2的Action可以是一个普通的Java类,这个类需要实现`com.opensymphony.xwork2.ActionSupport`接口,或者继承自Struts2提供的其他Action基类。Action类中的方法(通常标记为`execute()`)将作为处理用户请求的实际操作。此外,Action类还可以通过注解来简化配置,例如`@Action`和`@Result`。 ```java public class HelloWorldAction extends ActionSupport { public String execute() { return SUCCESS; } } ``` Struts2框架通过Action、Result、Interceptor(拦截器)等组件协同工作,提供了灵活的配置和扩展性,使得开发者能够更专注于业务逻辑的实现,而不是底层的HTTP请求处理。这份笔记通过实例和流程图详细解释了这些核心概念,对于学习和掌握Struts2框架非常有帮助。