前端ajax和ssm后端使用json交互实践

    传统的ssm是使用jsp作为View层,后端将数据添加进model再在jsp中使用EL表达式取用并渲染,但是这种方式对jsp的依赖太大,而且jsp必须要启动服务器才能看到效果,耦合度高效率低下。采用ajax传递json数据实现前后端数据交互的方式可以降低前后端的耦合度。

    前端代码:

ajax指定了提交的url:对应后端controller里的registerUser()方法

datatype:json

data:$("#postForm").serialize()  //这里直接使用form的id将form表单里的数据批量加载进来

然后就是success和error方法了,这里简单地将页面跳转。

点击提交按钮后数据将以json数据形式发送到后端:

前端ajax和ssm后端使用json交互实践_第1张图片

 

后端部分:

首先ssm的后端要处理json数据需要导入json的jar包(在pom.xml中添加依赖):


  com.fasterxml.jackson.core
  jackson-core
  2.5.2



  com.fasterxml.jackson.core
  jackson-databind
  2.5.2



  com.fasterxml.jackson.core
  jackson-annotations
  2.5.2

另外springMVC的配置文件里要开启注解驱动,这里本来是添加了几个常用的Converter转换器(将java类型转换成其他类型如json,xml等),但是好像会有版本冲突无法注入这几个bean于是将它们注释掉了(这里是个问题,未解决),只标注仍然可以正常运行。

注:原来当检测到运行环境中有json的支持时,Spring会自动注册一个json的转换器。


    
    

配置好之后看Controller

Result是自己定义的POJO类只有一个int型的status域。

@ResponseBody注解能将返回结果自动转换,这里默认转换成了json数据。

@ResponseBody
@RequestMapping(value="/registerUser", produces="application/json;charset=UTF-8")
public Result registerUser(User user) {
    //这里采用实体类接受数据,json的key值和实体类对象user域名一致,spring自动装入
    userService.addUser(user);
    Result result = new Result();
    result.setStatus(1);
    return result;
}

发给前端的响应:

ajax接受到数据后将页面跳转到login页面。

前端ajax和ssm后端使用json交互实践_第2张图片

 

你可能感兴趣的:(前端ajax和ssm后端使用json交互实践)