这个问题迷惑了我好几天,都快要放弃了,功夫不负有心人,最终成功解决,下面写一下我的解决方法。
我传的数据是json类型的,执行失败的回调函数是因为从后台传过来的数据不是严格的json类型,所以才会不执行成功的回调函数。
下面贴一下我的代码
Controller
@RequestMapping(value="/reg")
@ResponseBody
public Map<String,Object> Register(User user) throws IOException{
Map<String,Object> map = new HashMap<String,Object>();
boolean isSuccess = userService.Register(user);
if(isSuccess){
map.put("tip", "success");
}
else{
map.put("tip", "error");
}
return map;
}
jsp
$.ajax({
type:'POST',
data: {"email":email,"password":password,"type":type},
url:'user/reg',
async:false,
dataType: 'json',
success:function(response){
alert(response.tip);
$(form).find(":submit").attr("disabled", false);
},
error:function(response){
alert(response.tip);
$(form).find(":submit").attr("disabled", false);
}
});
注意我使用了注解@ResponseBody,该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
要想使用@ResponseBody需要在配置文件中启用注解,下面是启用注解的代码
<!--开启注解-->
<mvc:annotation-driven />
SpringMVC中使用@ResponseBody注解标注业务方法,将业务方法的返回值做成json输出给页面
除了一些spring的包之外,还需要jackson-annotations.jar , jackson-core.jar , jackson-databind.jar 这三个包
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.5.4</version>
</dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.5.4</version>
</dependency>
随机推荐
-
Android TextUtils类介绍
对于字符串处理Android为我们提供了一个简单实用的TextUtils类,如果处理比较简单的内容不用去思考正则表达式不妨试试这个在android.text.TextUtils的类,主要的功能如下: ...
-
BNUOJ29065鸣人的查克拉
鸣人的查克拉 Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld Java class name: ...
-
label的作用是什么?是怎么用的?
label标签是用来定义表单控制间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控件上. 主要有以下两种用法用法: 一. <label for = "Name&qu ...
-
Axure 入门学习
Axure RP是美国Axure Software Solution公司旗舰产品,是一个专业的快速原型设计工具,让负责定义需求和规格.设计功能和界面的专家能够快速创建应用软件或Web网站的线框图.流程 ...
-
SpringBoot2.0之五 优雅整合SpringBoot2.0+MyBatis+druid+PageHelper
上篇文章我们介绍了SpringBoot和MyBatis的整合,可以说非常简单快捷的就搭建了一个web项目,但是在一个真正的企业级项目中,可能我们还需要更多的更加完善的框架才能开始真正的开发,比如连接池 ...
-
CF1120D(神奇的构造+最小生成树)
考虑把树展开,单独把叶子节点拿出来 于是可以把控制点\(x\)的,抽象成是在它叶子节点间连权值为\(c_x\)的边 显然只用在\(x\)子树的最左边的叶子节点和最右边的叶子节点的下一个节点连边(最后一 ...
-
vue学习之组件
组件从注册方式分为全局组件和局部组件. 从功能类型又可以分为偏视图表现的(presentational)和偏逻辑的(动态生成dom),推荐在前者中使用模板,在后者中使用 JSX 或渲染函数动态生成组件 ...
-
百度地图JavaScript如何清除指定类型的覆盖物
由于一个地图中有很多种类型的覆盖物,由于某个覆盖物(一般是自定义)整个地图中只允许出现一次 那第一想到的就是,每次创建这个类型的覆盖物时先清除这一类型的覆盖物,比较简单判断覆盖物的类型 instanc ...
-
django中跨app引用model
可能是自己水平的原因,总感觉跨django中app引用有点怪怪的,所以在自己没有达到另一个级别之前就先把正确的解决 方案记一下吧. 一.django中跨app引用model,以app02中的model ...
-
Android 扁平化button
View 创建 colors.xml 文件定义两个颜色 1. <resources> 2. <color name="blue_pressed">@ ...