springboot之数据交互

一、SpringBoot默认会使用Json作为报文响应格式

@Controller
@RequestMapping("/sys/user")
public class UserController {

    @RequestMapping("login")
    @ResponseBody
    public Map<String, String> login() {
        Map<String, String> hashMap = new HashMap<>();
        hashMap.put("msg", "登录成功");
        return hashMap;
    }

}

备注:@ResponseBody 注解,它表示此接口响应为纯数据,不带任何界面展示。

为了方便,可以定义属于自己的数据规范。

public class Result {
    //状态码、描述、数据
    private int code;
    private String msg;
    private Object data;
    ....省略get和set方法
}

定义枚举类维护状态码。

public enum  ResultCode {

    SUCCESS(0, "请求成功"),
    WARN(-1, "网络异常,请稍后重试");

    private int code;
    private String msg;

    ResultCode(int code, String msg) {
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

}

案例:用户登录请求

1.用户实体类

public class User {

    private String username;
    private String password;

    ...
}

2.controller类里面接受前台请求的参数

@RestController
@RequestMapping("/user")
public class UserController {

    @RequestMapping("login")
    public Result login(@RequestBody User loginUser) {
        return new Result(ResultCode.SUCCESS, loginUser);
    }

}

3.前台发起的请求要以json的格式发送(可以使用ajax)

HTML页面:

<input id="username" readonly="readonly">
<input id="password" readonly="readonly">

Ajax请求代码:

<script type="text/javascript" src="/js/jquery-3.3.1.js"></script>
var username=document.getElementsById("username").toString();
var userpassword=document.getElementsById("userpassword").toString();
$.ajax({
    type:"post",
    url:"http://localhost:8080/user/login",
    data:{
        username: username,
        userpassword: userpassword
    },
    dataType:"json",
    async:false,
    success:function (data) {
        console.log(data);
    },
    error:function (e) {
        console.log(e);
    }
 });

</script>

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值