`

为什么Action中的接口执行了两次

阅读更多
问题场景:
程序中的方法莫名其妙的执行了两次,导致结果与预期的不一致
比如:调用接口发送短信验证,收到了两次短信,发送时间几乎相同

问题分析:
1.struts2中action调用两次问题
struts2 中JSON的原理是在ACTION中的get方法都会序列化,所以前面是get的方法只要没指定不序列化,都会执行解决方法

2.程序中有以getXXX()的方法
  • 1.  json格式下, firefox中的yslow插件会发送第二个 HTTP GET 请求得到页面的信息。.
  • 2.  ajax模式下,调用的action方法不能为get*方式命名,内中机理未知。

结论:action中方法最好不要以get开头。

问题总结:
被使用的公共方法可以这样起名,优势在于不用被其他方法调用,每次都自动执行
	public List<Province> getProvinceList() {
		provinceList = regionService.selectProvinceList();
		return provinceList;
	}

多个页面需要显示省份信息,只需要写这样一个方法即可,不用调用该方法

参考文献http://blog.sina.com.cn/s/blog_49cc672f0100v0jf.html
分享到:
评论

相关推荐

    action之间的跳转

    Redirect-action 需要两次请求能完成的工作,请求转发只要通过一次请求即可完成。这样一来我们也就明白了为什么请求不会造成数据丢失。 Xml 代码示例: ```xml &lt;result name="success" type="redirect-action"&gt;/...

    多action之间跳转传参问题

    - ModelDriven:使用ModelDriven接口,让Action类持有模型对象,模型对象在值栈中,可以直接在各个Action之间共享。 3. 结果映射(Result Mapping): - Struts2的配置文件(struts.xml)中定义了Action和结果的...

    中文Netty in action 第3章

    在Netty in action的第三章中,作者深入探讨了Netty的核心组件和概念,为读者揭开了Netty如何通过这些组件协作实现复杂网络通信的神秘面纱。下面详细阐述本章介绍的Netty的核心组件和概念。 首先,Bootstrap和...

    前后分离接口规范文档1

    5. **操作型接口的msg信息**:对于执行某种操作的接口,如修改、删除等,必须返回`msg`信息,以便前端向用户反馈操作结果。 **功能模块接口定义** 1. **用户登录**: - 用户通过`...

    什么是REST,符合REST的API叫RESTful 两种SOA接口实现:SOAP(WebService) vs REST

    例如,`/controller/orders/get/{id}`,这个URL清晰地表示了控制器(controller)、动作(action)以及参数(id),使得客户端能够通过理解URL结构来执行相应的操作。 SOAP(Simple Object Access Protocol)是一种...

    vue实现在一个方法执行完后执行另一个方法的示例

    在这个例子中,`sendAjax`是实际发送请求的函数,而`doPostAction`是一个包装过的版本,使用`_.debounce`进行了限制,确保在500毫秒内,无论用户点击多少次,只会执行一次`sendAjax`。这样,即使用户频繁点击,也...

    Jmeter接口测试1

    - 是实际执行测试逻辑的地方,类似于LoadRunner中的Action。 - 这个方法会在每个采样请求时被调用,因此是编写具体测试逻辑的关键部分。 - **void setupTest(JavaSamplerContext context)** - 初始化方法,类似...

    Teamcenter 创建Item后操作

    它们为`cust1_register_callbacks.c`和`cust_actions.c`提供接口,并帮助编译器进行类型检查和链接。 在Teamcenter环境中,开发者会使用这些源代码文件,结合Teamcenter SDK(软件开发工具包),来编写和集成自定义...

    《jgroup in action》

    有时需要同时连接到通道并获取状态,JGroups提供了一次性完成这两个操作的方法。 #### 3.7.5 Getting the local address and the group name 获取本地地址(Local Address)和群组名称(Group Name)是常用的操作之一。...

    unity多功能计时器,C#脚本

    3. **周期和次数**:计时器需要知道执行任务的频率(每n秒执行一次)和重复次数。这可以通过两个变量来实现,例如`interval`表示周期时间,`loopCount`表示循环次数。 4. **回调函数**:计时器应提供一个或多个方法...

    0354、下载线+接口电路——制作实用的单片机编程器.zip

    编程器通常由硬件和软件两部分组成,硬件部分负责与单片机的物理连接,而软件则负责执行程序烧录操作。在这个项目中,我们主要关注的是硬件部分,即“下载线”和“接口电路”。 下载线是连接单片机和电脑的桥梁,...

    Struts2框架

    Struts2则允许Action类实现Action接口或其他自定义接口,ActionSupport基类提供了常用功能的实现。此外,Struts2的Action不再局限于特定的类结构,任何具有execute()方法的POJO对象都可以作为Action使用,增加了可...

    JAVA三大框架面试题(2)[定义].pdf

    1. Action类:Struts1强制Action类继承抽象基类,而Struts2允许Action类实现Action接口或其他接口,提供了更多的定制选项。Struts2的`ActionSupport`基类提供了常用的接口实现。 2. 继承与接口:Struts1使用抽象类,...

    android 摇晃手机和双击屏幕截屏

    `DOUBLE_TAP_TIME_INTERVAL`是两次触摸之间的最大时间间隔,`ACTION_DOWN`代表触摸开始,`ACTION_UP`代表触摸结束。当检测到连续两次快速触摸时,同样调用`takeScreenshot()`方法。 **截图函数takeScreenshot()** ...

    EJB3 in Action

    ### EJB3 in Action #### 一、概述 《EJB3 in Action》是一本详细介绍企业JavaBeans (EJB) 3技术的书籍,由Manning出版社出版于2007年。本书由三位作者共同编写:Reza Rahman、Derek Lane以及Debu Panda。EJB是...

    struts2 相关原代码ognl xwork

    它定义了一种Action接口,该接口包含了一个execute()方法,这是处理用户请求的主要入口点。XWork还引入了拦截器(Interceptor)的概念,这些拦截器可以链式调用,为Action执行添加了如日志记录、权限检查、性能监控...

    使用OnTouch实现一个控件同时设置单击、双击、长按事件demo

    `OnTouchListener`是Android中的一个接口,它定义了`onTouch(View view, MotionEvent event)`方法,用于监听视图上的触摸事件。`MotionEvent`对象包含了关于触摸事件的所有信息,如动作类型(ACTION_DOWN, ACTION_UP...

    三大框架的工作原理借鉴.pdf

    1. **为什么使用AOP**: - 代码复用和简洁:AOP减少了重复的代码,使得业务逻辑更加专注于核心功能。 - 逻辑分离:将非业务逻辑(如日志和事务管理)与业务逻辑分离,使代码结构更清晰。 2. **AOP实现**: ...

Global site tag (gtag.js) - Google Analytics