文章简介
- 后端即控制层返回到前端数据
- 如何在一个自定义好的对象,让其属性按照我们想要的属性传过去
- mybati配置文件中resultMapper
后端即控制层返回到前端数据
总之:在前端我们数据一定要是json对象,否则无法通过.获取,所以如果是传回json对象就不要转换,前端直接使用就好了;如果是传回json字符串,前端就要先转成json对象,再通过.获取【var jsonObject = JSON.parse(data);】。
- 传回JSON对象(实体或map集合或)
传回JSON对象我们只需在配置文件定义转换器或者RequestMapping注解里面配置即可,你返回一个对象,系统会自动转换。而@ResponseBody注解指将JSON字符串作为响应处理(个人觉得是JSON字符串就是不处理) - 传回json字符串(json实体.tostring())
要得到json字符串字符串有两种形式:一种是利用JSONObject对象将对象格式为json字符串,另外一种就是定义一个json对象,里面存数据,再调用tostring方法。 - Json格式数据格式 (这里以直接用输出流输出Json格式的文本内容)
JSONObject jso =new JSONObject ();
Jso.put(“msg”,message)
Jso.accumulate(“userList”,list);
outStream.write(jso.toString().getBytes(“UTF-8”))
参考:https://blog.csdn.net/Milan__Kundera/article/details/82712586
补充一点:前端传到后端数据:可以是jsonstring(一定可以var jsonString = JSON.stringify(usernameRef);)或者json(一定可以)
如何在一个自定义好的对象,让其属性按照我们想要的属性传过去
可以在自定义好的对象属性上面加@JSONField
@JSONField(name="role_name")
private String roleName;
补充一点:@JSONField还有以下作用:指定字段的名称,使用format制定日期格式,指定字段的顺序,使用serialize/deserialize指定字段不序列化
public class A {
// 配置date序列化和反序列使用yyyyMMdd日期格式
@JSONField(format="yyyyMMdd")
public Date date;
}
public static class VO {
@JSONField(ordinal = 3)
private int f0;
@JSONField(ordinal = 2)
private int f1;
@JSONField(ordinal = 1)
private int f2;
public class A {
@JSONField(serialize=false)
public Date date;
}
mybati配置文件中resultMapper(以后有空总结下)
要知道以下几点:
Mybatis中输出映射-resultType与resultMap的区别
配置文件里面的什么时候可以不配,什么时候一定要配
配置文件中写的sql语句什么时候可以写连表查询(一个实体类里面包括要查询的字段),什么事后不可以(这个实体类只有单个表的字段)
一般写连表查询是用一个类去继承另一个类(一个是一个表的字段,继承的那个还增加了另一张表的内容)