Struts2 ACTION 结果类型详解:dispatcher, redirect, redirectAction, plai...

需积分: 10 4 下载量 169 浏览量 更新于2024-08-18 收藏 876KB PPT 举报
"ACTION中RESULT的各种转发类型-Struts2 PPT" Struts2是一个基于MVC设计模式的Java Web框架,它是在WebWork2的基础上发展起来的。与Struts1相比,Struts2具有许多优势,包括无侵入式设计、拦截器支持AOP编程、内置类型转换器、多视图技术支持以及更灵活的数据验证机制。 在ACTION配置中,RESULT是定义一个操作(Action)执行成功后如何转发或重定向的。默认的转发类型是`dispatcher`,它将结果页面通过请求Dispatcher分发到指定的页面。例如: ```xml <action name="helloworld" class="cn.itcast.action.HelloWorldAction"> <result name="success">/WEB-INF/page/hello.jsp</result> </action> ``` 这段配置表示当`HelloWorldAction`的`execute`方法执行成功并返回`success`时,框架会将请求转发到`/WEB-INF/page/hello.jsp`页面。 除了`dispatcher`,Struts2还提供了其他几种转发类型: 1. redirect:这个类型会创建一个新的请求,将用户重定向到指定的URL,而不是简单地转发。例如: ```xml <result type="redirect">view.jsp?id=${id}</result> ``` 这里会将用户重定向到`view.jsp`,并将`id`参数设置为Action中`id`属性的值。 2. redirectAction:这个结果类型用于重定向到另一个Action,可以处理同一个包下的Action或者不同命名空间的Action。例如: ```xml <result type="redirectAction">helloworld</result> ``` 和 ```xml <result type="redirectAction"> <param name="actionName">helloworld</param> <param name="namespace">/test</param> </result> ``` 第一个例子会重定向到当前包下的`helloworld` Action,第二个则会重定向到`/test`命名空间下的`helloworld` Action。 3. plainText:这个结果类型用于直接显示原始文件内容,比如显示JSP源代码。例如: ```xml <result name="source" type="plainText"> <param name="location">/xxx.jsp</param> <param name="charSet">UTF-8</param> </result> ``` 它会显示`/xxx.jsp`文件的内容,使用UTF-8编码。 在RESULT配置中,可以使用`${属性名}`表达式来访问Action中的属性。如上面的`redirect`例子,`id`参数的值就是来自Action的`id`属性。 Struts2提供的这些转发类型使得开发者可以根据需求选择合适的方式处理Action执行后的结果,增强了框架的灵活性和可扩展性。同时,Struts2的其他特性,如拦截器、类型转换器、数据校验和国际化支持,都极大地提升了开发效率和应用程序的质量。