我是靠谱客的博主 义气秀发,最近开发中收集的这篇文章主要介绍Struts2 Action中调用get***命名方法,并且返回json,执行出错,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天在Struts2的Action 有个页面数据加载的init****(就这样叫吧)方法,主要点击菜单的时候加载页面数据,然后我又写了个方法叫get****ById(勉强就叫这个吧),这个方法是点击某条数据的时候获取ID,并查找子项。但是当我写好了之后,我发现页面数据出错了,因为点击菜单时,并没有执行init****的页面加载方法,而是直接加载了get****ById,但是我没有点击任何东西,也没有进行页面操作,只是点击菜单进入首页,应该执行init****方法,并且response的请求也是”项目名/模块名!init****.action”,但却执行另一个没有调用的方法,我曾一度认为是前台页面JS写错了,后来我去掉调用get****ById的JS后也一样的结果。我开始怀疑是后台类的继承出错了,但是当我将独立开来不带继承的时候一样,也是不执行init****只执行get****ById。

后来我实在没辙了,干脆换个名字试试,换成Query****ById,然后奇迹发生了,数据竟然正常了。
这里写图片描述
后来我百度了一下,发现很多人也有这样的问题,虽然没有找到理想的答案,但是自己记录一下。

所以我建议还是尽量不要在Struts2 的 Action 中使用getXXXXX的方法,避免出现不必要的错误
但是这个问题只出现在返回JSON数据的时候,如果是返回页面的话又不会出现这个问题
这里写图片描述

比較滿意的答案:struts2的实现原理可能就是在初始化action类之后就会调用已get和set开头的所有方法,因此导致了上面的错误。

最后

以上就是义气秀发为你收集整理的Struts2 Action中调用get***命名方法,并且返回json,执行出错的全部内容,希望文章能够帮你解决Struts2 Action中调用get***命名方法,并且返回json,执行出错所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部