SpringMVC(json&全局异常处理)

这篇博客介绍了如何在SpringMVC中处理JSON数据和全局异常。首先讲解了导入JSON相关依赖、配置XML以及在mapper、servlet层、后台和前台代码的实现。接着,讨论了全局异常处理的重要性,分析了SpringMVC的异常分类,包括内置的SimpleMappingExceptionResolver和自定义的HandlerExceptionResovler。最后,通过@ControllerAdvice和@ExceptionHandler注解展示了如何实现JSON格式的全局异常返回。
摘要由CSDN通过智能技术生成

目录

一、json

1、导入pom依赖 

 2、springmvc-servlet.xml配置

3、mapper.xml

4、servlet层

5、后台代码

6、前台代码

 7、效果

二、全局异常处理

1.为什么要全局异常处理

2.异常处理思路 

 3.SpringMVC异常分类

4、SpringMVC自带的简单异常处理器

5、通过HandlerExceptionResovler接口实现全局异常 

 6、使用@ControllerAdvice+@ExceptionHandler实现全局异常

 7、全局异常处理JSON返回


一、json

1、导入pom依赖 

 <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.3</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.9.3</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.9.3</version>
    </dependency>

 2、springmvc-servlet.xml配置

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="mappingJackson2HttpMessageConverter"/>
            </list>
        </property>
    </bean>
    <bean id="mappingJackson2HttpMessageConverter"
          class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <!--处理中文乱码以及避免IE执行AJAX时,返回JSON出现下载文件-->
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
                <value>text/json;charset=UTF-8</value>
                <value>application/json;charset=UTF-8</value>
            </list>
        </property>
    </bean>

3、mapper.xml

  <select id="MaplistPager" parameterType="com.cxy.model.Clazz" resultType="java.util.Map">
    select
    <include refid="Base_Column_List" />
    from t_struts_class
    <where>
      <if test="cname != null and cname != ''">
        cname like CONCAT('%',#{cname},'%')
      </if>
      <if test="cid != null and cid != ''">
        cid = #{cid}
      </if>
    </where>
  </select>

4、servlet层

public List<Map> mapListPager(Clazz clazz,PageBean pageBean) {
        return clazzMapper.mapListPager(clazz);
    }

5、后台代码

package com.cxy.controller;

import com.cxy.biz.ClazzBiz;
import com.cxy.model.Clazz;
import com.cxy.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
@RequestMapping("/clz/json")
public class JsonController {
    @Autowired
    private ClazzBiz clazzBiz;

    /**
     * 返回JSON字符串
     */
    @RequestMapping("/clzEdit")
    public String clzEdit(){
        return "JosnController.clzEdit";
    }

    /**
     * 返回List<T>
     */
    @RequestMapping("/list")
    public List<Clazz> list(Clazz clazz, HttpServletRequest req){
        PageBean pageBean = new PageBean();
        pageBean.setRequest(req);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值