Struts2 Action配置详解:默认值与核心概念

需积分: 35 10 下载量 109 浏览量 更新于2024-07-13 收藏 2.34MB PPT 举报
"本资源主要讲解了Struts2框架中Action配置的默认值,包括Action类、方法以及结果的默认设定。此外,还对比了Struts1.0的核心组件和配置方式,并提到了Struts1.0的一些缺点。" 在Struts2框架中,Action配置是整个应用程序的核心部分,它定义了如何处理用户请求以及响应的流程。在提供的示例中,可以看到一个名为`itcast`的包被定义,其命名空间为`/test`,并继承了`struts-default`配置,这意味着它将使用Struts2的默认配置行为。 1. Action类的默认值:如果在配置中没有明确指定`class`属性,那么默认的Action类是`org.apache.struts2.dispatcher.ng.ExecuteAction`,它实际上是一个代理类,会进一步寻找实现了`com.opensymphony.xwork2.ActionSupport`接口的类。在示例中,Action类被指定为`cn.itcast.action.HelloWorldAction`。 2. Action方法的默认值:如果未指定`method`属性,Struts2将会尝试调用Action类中的`execute()`方法作为默认执行的方法。这个方法通常负责处理用户的请求并返回一个表示操作结果的字符串,比如`success`、`error`或`input`。 3. 结果的默认值:当未指定`result`的`name`属性时,默认的结果名称是`success`。这意味着,如果`execute()`方法或其他指定方法执行成功,Struts2将会寻找与`success`对应的结果配置来决定接下来的页面跳转。在示例中,`success`结果被配置为跳转到`/WEB-INF/page/hello.jsp`页面。 回顾Struts1.0,它的核心组件包括ActionForm和Action。开发者需要关注的是ActionForm用于封装页面提交的数据,而Action则负责处理这些数据。配置文件`struts-config.xml`中需要定义FormBean和ActionBean,以及它们之间的映射关系。Struts1.0的一个显著缺点是它与Servlet API高度耦合,这使得测试变得困难,同时只支持JSP作为表现层技术,不兼容FreeMarker、Velocity等其他模板引擎。 在Struts2中,这些问题得到了改善。它提供了更灵活的配置和更多的表现层支持,如FreeMarker、Velocity等。Struts2降低了对Servlet API的直接依赖,使得测试更加方便,而且Action配置更加简洁,如示例所示,Action可以直接关联到具体的类和方法,无需像Struts1那样定义ActionForm和ActionMapping。