目录
一、json解析
json的形式
SpringMVC框架如何产生上述三种形式的数据?
1、导入pom依赖 Jackson
2、配置SpringMVC.xml 配置适配器
(作用是做json数据转换的)
3、使用注解@responseBody 能够将任何的数据转成json对象
ClazzMapper.xml:
JsonController :
运行效果:
二、全局异常处理的3种形式
1.为什么要全局异常处理?
2.异常处理思路?
3.SpringMVC异常分类
异常处理的三种方式:
1、springmvc.xml中进行统一配置及处理(使用较少)
2、实现接口管理(使用较多)
3、@controllerAdvice+@ExceptionHandler
三、json统一处理
json的形式
{ } ——>为json对象 有两种形式拿到json对象:T、Map
[ ] ——>为json数组 有两种形式拿到json对象:List
、List {
msg:" ",
code:200, ——>为json混合对象
data:[ ]
}
步骤如下:
com.fasterxml.jackson.core
jackson-databind
2.9.3
com.fasterxml.jackson.core
jackson-core
2.9.3
com.fasterxml.jackson.core
jackson-annotations
2.9.3
text/html;charset=UTF-8
text/json;charset=UTF-8
application/json;charset=UTF-8
(但在实际开发中不太会使用这种形式,就是把@responseBody加到方法上面去。
可以把它删掉,使用另一个注解@restcontroller加到类上面,因为做json数据交互的话,通常整个类里面的所有方法都是要返回json数据的。
而@responseBody+@controller是 在某一个类里面 既有返回json数据又有返回跳转页面的。所以一般用@restcontroller来提高用户的体验感)
返回List
返回List
返回T
返回Map
返回混合
ClazzBiz:
package com.ycx.ssm.biz;
import com.ycx.model.Clazz;
import com.ycx.ssm.util.PageBean;
import java.util.List;
import java.util.Map;
public interface ClazzBiz {
int deleteByPrimaryKey(Integer cid);
int insert(Clazz record);
int insertSelective(Clazz record);
Clazz selectByPrimaryKey(Integer cid);
int updateByPrimaryKeySelective(Clazz record);
int updateByPrimaryKey(Clazz record);
List listPager(Clazz clazz, PageBean pageBean);
List
ClazzBizImpl:
@Override
public List
ClazzMapper:
List
package com.ycx.controller;
import com.ycx.model.Clazz;
import com.ycx.ssm.biz.ClazzBiz;
import com.ycx.ssm.util.PageBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
//@ResponseBody+@Controller=@RestController
@RestController
@RequestMapping("/clz/json")
public class JsonController {
@Autowired
private ClazzBiz clazzBiz;
@RequestMapping("/clzEdit")
public String clzEdit(){
System.out.println("JsonController.clzEdit");
return "clzEdit";
}
/**
* list
*/
@RequestMapping("/list")
public List list(HttpServletRequest request, Clazz clazz){
PageBean pageBean=new PageBean();
pageBean.setRequest(request);
// [{},{}]
return this.clazzBiz.listPager(clazz,pageBean);
}
/**
* list
index.jsp:
<%--
Created by IntelliJ IDEA.
User: zjjt
Date: 2022/8/22
Time: 18:42
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
测试json数据返回
返回list<T>对象
返回list<Map>对象
返回T对象
返回Map对象
返回混合对象