您的位置:首页 > 编程语言 > Java开发

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

2015-04-04 11:36 399 查看
引子
我们都知道Struts2页面的跳转,先是从jsp页面上提交一个action请求,然后根据在Struts中配置情况,对应到一个执行类上,然后再根据执行类的返回结果配置result标签,从而转发到另一个页面或者是action。
在这些传递的过程中,有一些我们在页面中设置的属性值也会随之传递,有点像是依赖注入。
要想实现页面的丰富跳转,跳转的中转站:result的标签的作用不可小视。当然了,也需要action类的强大支持。

问题
我在跳转时,遇到了这样一个问题。
就是我从我的当前页面出发,通过“chain”类型的跳转,跳到了另外一个包中。然后根据其中的action类,返回一个结果,跳到该包所对应的文件下的一个JSP页面。这个包中跳转时我用的result类型是默认值。(dispatcher)
从这个页面出发,我提交的action请求却没有办法正常响应。一看错误,竟然是namespace的配置有问题。

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

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

结果问题就这样解决了。

(也许纯文字的描述太不清晰,可是如果结果实际代码讲解恐怕更加的看起来复杂。其实这本身又不是一个复杂的问题。欢迎评论,进行讨论!)
本文出自 “海流之石” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐