`

解决struts2下ajax请求提交两次的问题

    博客分类:
  • java
阅读更多
在使用struts2时候发现一个问题。
<package name="promotion-json" namespace="/" extends="json-default">
如果这个package继承了json-default的时候。如果在页面发送ajax请求的时候。在action中如果有多个方法的时候。会莫名其妙的发送了两个请求出来。一个是正常的。一个是空的。会造成错误。后来发现原因是这样的。
struts2 中JSON的原理是在ACTION中的get方法都会序列化,所以前面是get的方法只要没指定不序列化,都会执行。
也就是说。如果方法名称是get开头的。那么久会序列化然后被执行。
于是解决方法就是:
1、Action中的业务方法前别加get 或者 set(属性的get set 除外)
2、用@JSON(serialize=false)指定方法不序列化 
 
E.G:
import com.googlecode.jsonplugin.annotations.JSON;

@JSON(serialize=false)
public String getSomething() throws Exception{...}   
分享到:
评论

相关推荐

    struts+ajax分页程序

    在Struts中,XML常用于配置Action和Result,所以这个文件可能是Struts的配置文件,包含了Ajax请求的相关配置,比如Action类的映射和结果类型设置。 总结来说,"struts+ajax分页程序"是一个结合了Struts框架和Ajax...

    ajax结合struts处理与数据库交互中的问题

    在Struts配置文件(struts.xml)中,需要为Ajax请求设置专门的拦截器和结果类型。 接着,数据库交互通常通过DAO(Data Access Object)层完成。在Struts应用中,我们可以创建一个DAO接口,实现对数据库的操作,如增...

    ajax+struts分页

    本项目是关于“Ajax+Struts”实现分页的一个实例,旨在利用这两种技术的优势,提供一个高效、动态且用户友好的分页解决方案。 首先,让我们来理解一下核心概念: 1. **Ajax(Asynchronous JavaScript and XML)**...

    网上书店原码 struts1.2+ajax

    在Struts1.2与Ajax结合的场景下,通常会创建一个AjaxAction,这个Action专门处理Ajax请求。Ajax请求的响应可以是JSON或XML格式,这取决于前端需要的数据类型。前端JavaScript代码会监听Ajax请求的完成事件,并根据...

    struts2防止表单重复提交--重定向

    Struts2的解决方案之一是利用Action的Result类型,尤其是`redirect`和`redirectAction`。这两种结果类型都可以在处理完表单后使浏览器跳转到新的URL,从而避免再次提交。 1. **redirect** 结果类型: 这种结果类型...

    Struts2防止重复提交的解决方案

    ### Struts2防止重复提交的解决方案 #### 一、引言 在Web应用程序开发中,一个常见的问题是如何有效地防止表单的重复提交。这不仅能够提高用户体验,还能增强系统的安全性。Struts2作为一款广泛使用的Java Web应用...

    struts与struts2的区别

    Struts和Struts2是两种不同的Java Web框架,它们都由Apache软件基金会开发,用于构建MVC(模型-视图-控制器)架构的Web应用程序。虽然名字相似,但两者在设计哲学、功能特性以及实现方式上有着显著的区别。 **1. ...

    struts2框架JAR包

    在这一版本中,Struts2经历了多次更新和改进,修复了许多已知的安全漏洞,如著名的CVE-2017-5638“Struts Shatter”漏洞。Struts2.3.x系列增强了对Java EE标准的支持,包括Servlet 3.0、CDI(Contexts and ...

    struts与AJAX

    - 数据分页和懒加载:在浏览大量数据时,通过AJAX请求下一页数据,而不是一次性加载所有内容,可以显著提高页面加载速度。 4. 在Struts项目中集成AJAX,通常需要以下步骤: - 创建一个Action,处理AJAX请求。 - ...

    能运行的ExtJs+Struts2文件上传

    同时,ExtJs的Ajax请求需要与Struts2的Action配置相匹配,以便正确地发送和接收数据。 在压缩包文件名称列表"ext_struts_shangchuan"中,我们可以推测这可能包含了项目的基本结构,如HTML、CSS、JavaScript(ExtJs...

    Ajax请求在数据量大的时候出现超时的解决方法

    为了解决这个问题,我们可以采取以下两种方法来调整EXTJS的Ajax请求超时时间: 1. **在Ajax请求时设置超时时间**: 当我们在调用`Ext.Ajax.request`时,可以添加一个`timeout`属性来指定请求的超时时间,单位为...

    Struts与Struts2比较学习

    Struts和Struts2是两种非常重要的Java Web开发框架,它们都源于Apache软件基金会,用于构建基于MVC(Model-View-Controller)架构的Web应用。这篇文章将深入探讨这两个框架的差异,帮助开发者理解它们各自的特点和...

    电子商务网站备用技术\Ajax整合struts2 入门之三(表单验证)

    这些注解会自动在Struts2处理请求时执行,确保提交的数据有效。 接着,当Struts2的Action执行完毕后,若验证失败,它会返回一个特定的结果,这个结果可以配置在struts.xml中,将用户重定向回表单页面,并通过...

    ajax+struts

    当用户在前端滚动或者展开某个节点时,通过Ajax发送请求获取下一层数据,这样可以避免一次性加载大量数据导致的性能问题。 在实际应用中,为了实现这种功能,我们需要在Struts的Action中编写处理递归逻辑的方法,并...

    使用struts2+Ajax+jquery验证用户名是否已被注册

    - Ajax请求返回的数据被处理为简化的形式(此处为"1"或"0"),从而便于前端进行判断和响应。 4. jQuery库使用: - jQuery是一个快速、简洁的JavaScript库,它简化了HTML文档遍历和操作、事件处理、动画和Ajax交互...

    struts2.jar

    4. **插件机制**:Struts2有一个强大的插件系统,允许扩展框架功能,如Struts2-dojo-plugin提供了与Dojo JavaScript库的集成,增强了AJAX支持。 5. **类型转换和参数绑定**:Struts2自动进行表单参数到Action属性的...

    Struts2验证码

    在Struts2框架下实现验证码功能,可以帮助提升用户体验和系统安全性。以下将详细讲解如何在Struts2中创建前端注册验证码。 首先,验证码的实现通常包括两个主要部分:后端生成验证码和前端展示及验证。 1. **后端...

    Struts2级联doubleselect

    8. **JSON数据交换格式**:在Ajax请求中,服务器端返回的数据通常以JSON格式,因为JSON轻量级且易于解析,适合在客户端和服务器之间传递数据。 9. ** strut2-plugin.xml配置**:Struts2的插件配置文件中,需要配置...

Global site tag (gtag.js) - Google Analytics