概述
博主在写一个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获取数据,action的excuterResult要设置成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无限循环错误详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复