【印染能耗指标源码】【电脑源码编程器上声音中】【动漫的个人主页网页源码】struts2 源码

2024-12-23 01:17:06 来源:卡盟源码分类 分类:百科

1.Struts 2的Result Type
2.Struts 2Result Type

struts2 源码

Struts 2的Result Type

       åœ¨é»˜è®¤æ—¶ï¼Œ<result>标签的type属性值是“dispatcher”(实际上就是转发,forward)。开发人员可以根据自己的需要指定不同的类型,如redirect、stream等。如下面代码所示:

       <result name=save type=redirect>

       /result.jsp

       </result>

       è¿™æ­¤result-type可以在struts2-core-2.0..1.jar包或struts2源代码中的struts-default.xml文件中找到,在这个文件中找到<result-types>标签,所有的result-type都在里面定义了。代码如下: <result-types><result-type name=chain class=com.opensymphony.xwork2.ActionChainResult/><result-type name=dispatcher class=org.apache.struts2.dispatcher.ServletDispatcherResult default=true/><result-type name=freemarker class=org.apache.struts2.views.freemarker.FreemarkerResult/><result-type name=.opensymphony.xwork2.ActionChainResultchain其实只是在一个action执行完毕之后,forward到另外一个action,所以他们之间是共享HttpServletRequest的。在使用chain作为Result时,往往会配合使用ChainingInterceptor。ChainingInterceptor的作用是在Action直接传递数据。事实上,源Action中ValueStack的数据会被做一次Copy,这样,2个Action中的数据都在ValueStack中,使得对于前台来说,通过ValueStack来取数据,是透明而共享的。比如说,一张页面中,你可能有许多数据要显示,而某些数据的获取方式可能被很多不同的页面共享(典型来说,“推荐文章”这个小栏目的数据获取,可能会被很多页面所共享)。这种情况下,可以把这部分逻辑抽取到一个独立Action中,并使用chain,将这个Action与主Action串联起来。这样,最后到达页面的时候,页面始终可以得到每个Action中的数据。

       ä»Žå®žæˆ˜ä¸Šè®²ï¼Œä½¿ç”¨chain作为Result也的确存在着上面所说的许多问题,我个人也是非常不推崇滥用这种Result。尤其是,对于使用Spring和Hibernate的朋友来说,如果你开启OpenSessionInView模式,那么Hibernate的session是跟随HttpServletRequest的,所以session在整个action链中共享。这会为我们的编程带来极大的麻烦。因为我们知道Hibernate的session会保留一份一级缓存,在action链中,共享一级缓存无疑会为你的调试工作带来很大的不方便。

       æ‰€ä»¥ï¼Œè°¨æ…Žä½¿ç”¨chain作为你的Result,应该成为一条最佳实践。 重定向到一个URL org.apache.struts2.dispatcher.ServletRedirectResult如果你在Action执行完毕后,希望执行另一个Action,有2种方式可供选择。一种是forward,另外一种是redirect。有关forward和redirect的区别,这里我就不再展开,这应该属于Java程序员的基本知识。在Struts2中,分别对应这两种方式的Result,就是chain和redirect。

       å…ˆæ¥è°ˆè°ˆredirect,既然是重定向,那么源地址与目标地址之间是2个不同的HttpServletRequest。所以目标地址将无法通过ValueStack等Struts2的特性来获取源Action中的数据。

       åŒæ—¶ï¼ŒRedirect的Result支持在配置文件中,读取并解析源Action中ValueStack的值,并成为参数传递到Redirect的地址中。 重定向到一个Action org.apache.struts2.dispatcher.ServletActionRedirectResult

Struts 2Result Type

       在Struts 2中,源码标签的源码type属性默认设置为"dispatcher",即页面转发。源码但开发者可以根据项目需求选择其他类型,源码比如redirect、源码印染能耗指标源码stream等。源码电脑源码编程器上声音中例如,源码以下代码展示了如何指定redirect类型:

       这些result-type的源码定义可以在struts2-core-2.0..1.jar包或源代码的struts-default.xml文件中找到,该文件包含一个标签,源码定义了各种result-type,源码如下所示:

       - "dispatcher"通常处理JSP页面的源码转发。

       - "FreemarkerResult"用于处理FreeMarker模板。源码

       - "HttpHeaderResult"控制HTTP特殊行为。源码动漫的个人主页网页源码

       - "StreamResult"将InputStream对象发送给浏览器,源码常用于文件下载和AJAX数据返回。源码

       - "StreamResult"等效于在Servlet中直接输出流,用于输出、溯源码中盏哪里去买文档等二进制流。

       配置示例:

       image/jpeg

       StreamResult支持参数控制输出流。"VelocityResult"处理Velocity模板,"XSLTResult"处理XML/XSLT模板,负2分之一源码"PlainTextResult"则显示原始文件内容。

       "chain"(ActionChainResult)用于处理Action链,Action之间的数据共享通过ChainingInterceptor实现,但这可能会导致Spring和Hibernate session共享问题,不建议滥用。

       "redirect"(ServletRedirectResult)用于重定向到一个URL,与forward不同,目标地址无法获取源Action的数据。同时,redirect支持从源Action的ValueStack中读取值传递到目标URL。

       "redirectAction"(ServletActionRedirectResult)则重定向到另一个Action。在选择redirect或forward时,应根据实际需求权衡利弊。

更多资讯请点击:百科

推荐资讯

广东12部门联合打击野生动物违规交易和非法制售防护产品

中国消费者报广州讯(陈晓莹记者 李青山)近日,记者获悉,广东12部门召开广东省联合打击野生动物违规交易专项执法行动暨联合打击非法制售口罩等防护用品专项执法行动电视电话会议。会议指出,关于应对新型冠状病

产品图集源码_产品图集源码怎么做

1.成都网页直播系统源码2.unity 动态图集3.unity动态图集4.dede网站模板怎么安装教程安装dede源码模板5.织梦图集内容怎么调用织梦内容页调用6.游戏引擎随笔 0x29:UE5 Lu

创世同城源码_创世平台接单

1.创世战车手游国际服如何2.创世棋牌手游3.创世战车手游下载国际服4.下列那支球队不是英格兰联赛的创世队伍创世战车手游国际服如何 下载地址:/azyx/jsby/chuangshijiuling