Struts2结果类型详解:dispatcher与redirect

需积分: 0 0 下载量 103 浏览量 更新于2024-09-13 收藏 786KB PPT 举报
"struts2结果类型课件" Struts2是一个强大的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。它提供了丰富的特性,其中包括灵活的结果类型(Result Types)机制,帮助开发者更好地管理和控制Action执行后的响应。在Struts2中,每个Action方法执行后都会返回一个字符串,这个字符串被称为结果码(Result Code),Struts2会依据这个结果码来确定执行哪个结果。 结果类型是Struts2中的一种策略,它定义了如何处理Action返回的特定结果码。默认情况下,如果Action方法返回"success",那么Struts2将会寻找与之匹配的`<result>`标签来决定下一步的动作。每个`<result>`标签有两个关键属性:`name`和`type`。`name`属性定义了结果码,`type`属性则指定了结果的类型。 1. `dispatcher`结果类型是最常见和默认的结果类型。它通过`location`参数指定资源的位置,通常是一个JSP或Freemarker模板。`dispatcher`类型使用Servlet容器的请求转发机制,将控制权转交给应用程序内部的资源。这意味着URL不会改变,服务器端的状态也会保持不变,这对于保持session信息非常有用。但是,`dispatcher`不能转发到外部资源,例如,如果需要重定向用户到一个外部网站,这时就需要使用`redirect`结果类型。 2. `redirect`结果类型,如其名,实现了HTTP的重定向。它将控制权交给浏览器,由浏览器发起一个新的请求,这会导致URL的变化,并且会清除任何服务器端的session信息。`redirect`类型适用于跳转到外部资源或者防止表单重复提交的情况。 在Struts2的核心配置文件`struts-default.xml`中,定义了这些默认的结果类型,开发者可以根据项目需求进行扩展和自定义。通过覆盖默认配置或在Action配置中明确指定`<result>`标签的`type`属性,可以选择使用不同的结果类型。 在学习Struts2的过程中,理解并熟练掌握各种结果类型是至关重要的,这有助于提高代码的灵活性和可维护性。对于初学者,通过阅读此课件,可以更深入地了解Struts2框架中的结果处理机制,从而更好地构建Web应用。