【Struts2二】结果集(result-type)
2015-07-16 09:52
459 查看
在jsp/servlet中,结果集通常是指请求转发和重定向这两种!
Struts2作为框架,提供了基于这两种的更多的结果集!
在struts-default.xml中定义了一些默认的结果集:
如何配置结果集呢?
在struts的配置中,使用result标签来表示结果集:
[align=left]
[/align]
[align=left]type:表示结果集的类型[/align]
[align=left]name:与Action中方法的返回值相互对应![/align]
[align=left]
[/align]
[align=left]常见的type有三种:dispatcher,redirect,redirectAction[/align]
[align=left]
[/align]
[align=left]下面详细介绍一下这三种结果集:[/align]
[align=left]1.创建一个struts-resulttype.xml文件:[/align]
[align=left]在struts.xml文件中,使用inclue将上述文件引入:[/align]
[align=left]struts-resulttype.xml:[/align]
[align=left]2.Action的处理:[/align]
Struts2作为框架,提供了基于这两种的更多的结果集!
在struts-default.xml中定义了一些默认的结果集:
[align=left] <result-types>[/align] [align=left] <result-type name= "chain" class="com.opensymphony.xwork2.ActionChainResult" />[/align] [align=left] <result-type name= "dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>[/align] [align=left] <result-type name= "freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult" />[/align] [align=left] <result-type name= "httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult" />[/align] [align=left] <result-type name= "redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult" />[/align] [align=left] <result-type name= "redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult" />[/align] [align=left] <result-type name= "stream" class="org.apache.struts2.dispatcher.StreamResult" />[/align] <result-type name= "velocity" class="org.apache.struts2.dispatcher.VelocityResult" /> [align=left] <result-type name= "xslt" class="org.apache.struts2.views.xslt.XSLTResult" />[/align] [align=left] <result-type name= "plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />[/align] [align=left] </result-types>[/align] |
在struts的配置中,使用result标签来表示结果集:
< result type = "redirect" name = "redirect"> / resulttype/resulttype.jsp </result > |
[/align]
[align=left]type:表示结果集的类型[/align]
[align=left]name:与Action中方法的返回值相互对应![/align]
[align=left]
[/align]
[align=left]常见的type有三种:dispatcher,redirect,redirectAction[/align]
[align=left]
[/align]
[align=left]下面详细介绍一下这三种结果集:[/align]
[align=left]1.创建一个struts-resulttype.xml文件:[/align]
[align=left]在struts.xml文件中,使用inclue将上述文件引入:[/align]
< include file = "struts-resulttype.xml" ></include > |
[align=left]<?xml version= "1.0" encoding ="UTF-8" ?>[/align] [align=left]<!DOCTYPE struts PUBLIC[/align] "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" [align=left] "http://struts.apache.org/dtds/struts-2.0.dtd">[/align] [align=left]<struts>[/align] [align=left] <package name="resulttype" namespace="/" extends="struts-default" >[/align] [align=left] [/align] [align=left] <!--[/align] [align=left] 全局结果集:当某个方法返回为name属性对应的值时,就调用全局结果集进行处理。[/align] [align=left] 可以用来进行通用错误页面的处理。[/align] [align=left] -->[/align] [align=left] <global-results>[/align] [align=left] <result name="error" >errot/error.jsp</ result>[/align] [align=left] </global-results>[/align] [align=left] [/align] <!-- 测试请求转发 --> [align=left] <action name= "dispatcherAction" method="testDispatcher" class="cn.itheima03.struts2.resulttype.ResultTypeAction" >[/align] [align=left] <!--[/align] [align=left] <result type="" name=""></result> :[/align] [align=left] result标签代表一种结果集,在struts-default.xml中定义了一写结果集[/align] [align=left] type[/align] [align=left] dispatcher 转发 默认值[/align] [align=left] redirect 重定向[/align] [align=left] redirectAction 重定向到一个action[/align] [align=left] name[/align] [align=left] success 默认值[/align] [align=left] method="testDispatcher"[/align] [align=left] -->[/align] [align=left] <result type= "redirect" name="redirect" >/ resulttype/resulttype.jsp</result >[/align] [align=left] </action>[/align] [align=left] [/align] [align=left] [/align] [align=left] <!-- 测试重定向[/align] [align=left] 浏览器中的 url会发生变化:[/align] [align=left] http://localhost/itheima03_struts2/resulttype/resulttype.jsp[/align] [align=left] -->[/align] [align=left] <action name= "redirectAction" method="testRedirect" class="cn.itheima03.struts2.resulttype.ResultTypeAction" >[/align] [align=left] <result type= "redirect" name="redirect" >/ resulttype/resulttype.jsp</result >[/align] [align=left] </action>[/align] [align=left] [/align] [align=left] <!--[/align] [align=left] 测试重定向到一个action[/align] [align=left] 浏览器的地址栏会变成:[/align] [align=left] http://localhost/itheima03_struts2/dispatcherAction!testDispatcher.action[/align] [align=left] -->[/align] [align=left] <action name= "redirectActionAction" method="testRedirectAction" class="cn.itheima03.struts2.resulttype.ResultTypeAction" >[/align] [align=left] <result type= "redirectAction" name="redirectAction" >dispatcherAction!testDispatcher.action </result>[/align] [align=left] </action>[/align] [align=left] [/align] [align=left] <!-- 测试全局结果集的处理[/align] [align=left] 当自己定义的name属性的值和全局结果集name属性值一直时,自己定义的优先![/align] [align=left] 1.当自己的name='error'时,使用自己定义的结果集;[/align] [align=left] 2.当自己的name!='error'时,如果访问的方法返回的是"error",那么调用全局结果集进行处理![/align] [align=left] [/align] [align=left] -->[/align] [align=left] <action name= "globalResultAction_*" method ="{1}" class="cn.itheima03.struts2.resulttype.ResultTypeAction" >[/align] [align=left] <result name="error" >resulttype/resulttype.jsp</ result>[/align] [align=left] </action>[/align] [align=left] [/align] [align=left] </package >[/align] [align=left]</struts>[/align] |
[align=left]import org.apache.struts2.ServletActionContext;[/align] [align=left] [/align] [align=left]import com.opensymphony.xwork2.ActionSupport;[/align] [align=left] [/align] [align=left]public class ResultTypeAction extends ActionSupport{[/align] [align=left] [/align] [align=left] /**[/align] [align=left] * 测试请求转发结果集:type为dispatcher[/align] [align=left] * <result type="dispatcher" name="dispatcher">/resulttype/resulttype.jsp </result>[/align] [align=left] */[/align] public String testDispatcher(){ [align=left] ServletActionContext. getRequest().setAttribute("aa", "aadda");[/align] [align=left]// return "error";//测试全局结果集[/align] [align=left] return "dispatcher" ;[/align] [align=left] }[/align] [align=left] [/align] [align=left] /**[/align] [align=left] * 测试重定向[/align] [align=left] */[/align] public String testRedirect(){ [align=left] ServletActionContext. getRequest().setAttribute("aa", "aaa");[/align] [align=left] return "redirect" ;[/align] [align=left] }[/align] [align=left] [/align] [align=left] /**[/align] [align=left] * 测试重定向到一个action[/align] [align=left] * <result type="redirectAction" name="redirectAction">dispatcherAction!testDispatcher.action</result>[/align] [align=left] */[/align] public String testRedirectAction(){ [align=left] ServletActionContext. getRequest().setAttribute("aa", "aaa");[/align] [align=left] return "redirectAction" ;[/align] [align=left] }[/align] [align=left] [/align] [align=left] /**[/align] [align=left] * 测试全局结果集[/align] [align=left] * 返回值要和全局结果集的name属性值要对应![/align] [align=left] * <global-results>[/align] [align=left] <result name="error">errot/error.jsp </result>[/align] [align=left] </global-results>[/align] [align=left] *[/align] [align=left] * @return[/align] [align=left] */[/align] public String globle(){ [align=left] return "error" ;[/align] [align=left] }[/align] [align=left]}[/align] |
相关文章推荐
- JQuery+Strusts1.x无刷新登录
- 插件管理框架 for Delphi(一)
- 使用CSS框架布局的缺点和优点小结
- 列举PHP的Yii 2框架的开发优势
- Windows窗体的.Net框架绘图技术实现方法
- 浅谈JavaScript 框架分类
- JS刷新框架外页面七种实现代码
- 超赞的动手创建JavaScript框架的详细教程
- asp.net4.0框架下验证机制失效的原因及处理办法
- struts2 jquery 打造无限层次的树
- 插件管理框架 for Delphi(二)
- 零基础学习AJAX之AJAX框架
- Ajax 框架学习笔记
- ajax交互Struts2的action(客户端/服务器端)
- Flex中最好的MVC框架Mate框架
- java struts常见错误以及原因分析
- JavaScript 异步调用框架 (Part 4 - 链式调用)
- JavaScript 异步调用框架 (Part 2 - 用例设计)
- struts2 spring整合fieldError问题
- Struts2的s:radio标签使用及用jquery添加change事件