我是靠谱客的博主 天真钻石,最近开发中收集的这篇文章主要介绍Struts标签s:action无限循环错误详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

博主在写一个Web项目的时候需要自动执行action请求,所有用到了<s:action></s:action>这个标签。但是却出现无限提交action的情况。大概是这样


细心一点可以看到程序都在执行重复的操作,博主首先检查了数据库,发现没有问题,然后检查了DAO,BIZ等业务逻辑层,发现也没问题,最后将问题转向<s:action></s:action>这个标签上来,经检查确实是这个标签的属性值配置出错。首先看一下标签的属性值:

id:可选属性,作为该Action的引用ID    

name:必选属性,指定调用Action
   
namespace:可选属性,指定该标签调用Action所属namespace    
   
executeResult:可选属性,指定是否将Action的处理结果包含到本页面中.默认值为false,不包含.    
   

ignoreContextParam:可选参数,指定该页面的请求参数是否需要传入调用的Action中,默认值是false,

我开始是这样写的<s:actionname="xxx" executeResult="true"namespace="/xxx"> </s:action>

,name和namespace都没问题,所有我把注意力放在了executeResult这个属性上。果然发现错误,总结下来大概是这样:

index.jsp为首页。首页加载是要通过action获取数据,actionexcuterResult要设置成true,表示获取处理结果,作用相当与<resultname="success">/index.jsp</result>,但是当action执行完并且携带数据回到index.jsp时,也需要走<result>这一过程返回 index.jsp,程序不知道以action请求的result获取的值还是以executeResult获取的值为基准,所有无限重复执行action操作.

下面提供两个解决方案:
1.去掉executerResult这个属性或者将executerResult="true"改成executerResult="false"
2.在请求的xxAction类下将请求方法的返回类型修改为Void,不返回值

修改为void 

最后

以上就是天真钻石为你收集整理的Struts标签s:action无限循环错误详解的全部内容,希望文章能够帮你解决Struts标签s:action无限循环错误详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部