码迷,mamicode.com
首页 > 其他好文 > 详细

Struts2中action调用的一个问题发现

时间:2015-04-04 16:55:18      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:action   result   中转站   标签   chain   

引子

我们都知道Struts2页面的跳转,先是从jsp页面上提交一个action请求,然后根据在Struts中配置情况,对应到一个执行类上,然后再根据执行类的返回结果配置result标签,从而转发到另一个页面或者是action。

在这些传递的过程中,有一些我们在页面中设置的属性值也会随之传递,有点像是依赖注入。

要想实现页面的丰富跳转,跳转的中转站:result的标签的作用不可小视。当然了,也需要action类的强大支持。


问题

我在跳转时,遇到了这样一个问题。

就是我从我的当前页面出发,通过“chain”类型的跳转,跳到了另外一个包中。然后根据其中的action类,返回一个结果,跳到该包所对应的文件下的一个JSP页面。这个包中跳转时我用的result类型是默认值。(dispatcher)

从这个页面出发,我提交的action请求却没有办法正常响应。一看错误,竟然是namespace的配置有问题。


这个问题是:namespace所用的命名空间是我最初的那个页面所在的命名空间。它没有自动转变成我当前页面的JSP所在的命名空间。也就是说,Struts是自动把它当做第一个页面的请求来进行处理的。而是事实是,它不是第一个页面所发出的请求。


问题分析清楚了,解决起来也是非常的容易的。很有可能是我当前的页面被与我的第一个页面连起来了。所以解决的办法就是断开这种连接。那就是使用“redirect”类型的result的进行转发。


结果问题就这样解决了。


(也许纯文字的描述太不清晰,可是如果结果实际代码讲解恐怕更加的看起来复杂。其实这本身又不是一个复杂的问题。欢迎评论,进行讨论!)

本文出自 “海流之石” 博客,转载请与作者联系!

Struts2中action调用的一个问题发现

标签:action   result   中转站   标签   chain   

原文地址:http://stickydream.blog.51cto.com/6388849/1628190

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!