Struts2配置详解:Action与XML配置

需积分: 0 0 下载量 78 浏览量 更新于2024-08-18 收藏 286KB PPT 举报
"在Struts2框架中,配置Action是在Struts.xml文件中进行的,它是Struts2.0三大核心组件之一。Struts2框架的配置方式与Struts1有所不同,不再通过path属性来指定URL路径,而是采用包的命名空间和Action的名称来组合形成访问路径。在给定的配置示例中,创建了一个名为`rjty`的包,其命名空间为`/test`,并扩展了`struts-default`配置。Action名为`helloworld`,关联的类是`cn.rjty.action.HelloWorldAction`。当用户请求 `/test/helloworld`时,系统会调用该Action,并将结果定向到`/WEB-INF/page/helloworld.jsp`页面。如果Action没有指定具体的执行方法,那么默认会执行继承自`ActionSupport`的`execute()`方法,该方法返回的结果通常为`success`,对应一个结果页面。此外,可以使用`method`属性来指定Action中的特定方法进行处理。为了开发Struts2应用程序,需要依赖一些核心JAR文件,如`struts2-core`、`xwork`、`ognl`、`freemarker`、`commons-logging`等。Struts2框架通过Filter而非Servlet启动,需要在`web.xml`中配置`FilterDispatcher`以拦截所有请求。" 在Struts2框架中,配置Action是通过Struts.xml文件实现的,这是构建应用的重要步骤。在这个例子中,我们创建了一个名为`rjty`的包,它的namespace属性定义了访问路径的前缀`/test`,这意味着所有的Action都将在这个命名空间下。`extends="struts-default"`表明这个包继承了Struts2提供的默认配置,包括默认的拦截器栈和其他设置。 Action的配置如下: ```xml <action name="helloworld" class="cn.rjty.action.HelloWorldAction"> <result name="success">/WEB-INF/page/helloworld.jsp</result> </action> ``` 这里的`name`属性定义了Action的名称,`class`属性指定了Action类的全限定名。`result`元素定义了当Action执行成功(即`execute()`方法返回`success`)后应转向的页面。在这个例子中,成功后的结果页面是`/WEB-INF/page/helloworld.jsp`。 在Struts2中,Action的执行方法可以通过`method`属性来指定,如果未指定,将默认执行`execute()`方法。`execute()`方法在`ActionSupport`基类中定义,它返回`SUCCESS`作为默认结果,这与Struts1中通过`path`属性指定URL的方式不同。 为了使用Struts2框架,开发者需要在项目中包含必要的库文件。这些库文件通常可以从Apache Struts官方网站下载,包括`struts2-core`、`xwork`、`ognl`、`freemarker`、`commons-logging`等核心库,以及根据需要集成的插件库,如`struts2-spring-plugin`(如果与Spring框架集成)。 在Web应用的部署描述符`web.xml`中,Struts2的启动配置涉及到`FilterDispatcher`过滤器,它负责拦截所有的HTTP请求,然后根据配置将请求转发给相应的Action处理。配置如下: ```xml <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 这里`FilterDispatcher`过滤器被映射到所有URL模式,确保了Struts2框架对所有请求的处理。这种基于Filter的启动方式使得Struts2能更灵活地与其他Web框架集成。 总结来说,Struts2的Action配置和启动涉及到Struts.xml文件、Action类、结果页面、依赖库以及web.xml中的Filter配置。理解并熟练掌握这些知识点对于开发基于Struts2的Java Web应用至关重要。
2023-05-18 上传