<i id='Py7am'><tr id='Py7am'><dt id='Py7am'><q id='Py7am'><span id='Py7am'><b id='Py7am'><form id='Py7am'><ins id='Py7am'></ins><ul id='Py7am'></ul><sub id='Py7am'></sub></form><legend id='Py7am'></legend><bdo id='Py7am'><pre id='Py7am'><center id='Py7am'></center></pre></bdo></b><th id='Py7am'></th></span></q></dt></tr></i><div id='Py7am'><tfoot id='Py7am'></tfoot><dl id='Py7am'><fieldset id='Py7am'></fieldset></dl></div>
    • <bdo id='Py7am'></bdo><ul id='Py7am'></ul>
    <tfoot id='Py7am'></tfoot>

    1. <legend id='Py7am'><style id='Py7am'><dir id='Py7am'><q id='Py7am'></q></dir></style></legend>

      <small id='Py7am'></small><noframes id='Py7am'>

        SpringMVC学习之JSON和全局异常处理详解

        时间:2023-12-10
        • <bdo id='qqBCU'></bdo><ul id='qqBCU'></ul>
                <tbody id='qqBCU'></tbody>
              <tfoot id='qqBCU'></tfoot>

                <legend id='qqBCU'><style id='qqBCU'><dir id='qqBCU'><q id='qqBCU'></q></dir></style></legend>
              1. <i id='qqBCU'><tr id='qqBCU'><dt id='qqBCU'><q id='qqBCU'><span id='qqBCU'><b id='qqBCU'><form id='qqBCU'><ins id='qqBCU'></ins><ul id='qqBCU'></ul><sub id='qqBCU'></sub></form><legend id='qqBCU'></legend><bdo id='qqBCU'><pre id='qqBCU'><center id='qqBCU'></center></pre></bdo></b><th id='qqBCU'></th></span></q></dt></tr></i><div id='qqBCU'><tfoot id='qqBCU'></tfoot><dl id='qqBCU'><fieldset id='qqBCU'></fieldset></dl></div>

                <small id='qqBCU'></small><noframes id='qqBCU'>

                1. SpringMVC学习之JSON和全局异常处理详解

                  JSON

                  什么是JSON

                  JSON是一种轻量级的数据交换格式,它的设计是为了易于阅读和编写。JSON是基于JavaScript的一个子集,可以用于表示简单的数据结构和对象,常用于Web前端和服务器之间的数据传输。

                  在SpringMVC中使用JSON

                  SpringMVC内置了MappingJackson2HttpMessageConverter,可以将Java对象自动转换为JSON格式,也可以将JSON格式转换为Java对象。配置如下:

                  <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
                      <property name="messageConverters">
                          <list>
                              <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                                  <property name="supportedMediaTypes">
                                      <list>
                                          <bean class="org.springframework.http.MediaType" factory-method="valueOf">
                                              <constructor-arg value="application/json;charset=UTF-8"/>
                                          </bean>
                                      </list>
                                  </property>
                              </bean>
                          </list>
                      </property>
                  </bean>
                  

                  在Controller中,可以使用@ResponseBody注解将Java对象转换为JSON格式并返回给客户端,示例代码如下:

                  @RequestMapping("/getUser")
                  @ResponseBody
                  public User getUser(String id){
                      User user = userService.getUserById(id);
                      return user;
                  }
                  

                  示例说明

                  假设我们有一个User类和一个UserService类,需要返回一个用户的信息给客户端。首先,我们配置好MappingJackson2HttpMessageConverter,然后在Controller中编写一个获取用户信息的控制器。通过调用UserService类中的方法获取User对象,然后使用@ResponseBody注解将其转换为JSON格式并返回给客户端。客户端可以通过AJAX调用请求获取JSON格式的数据,然后进行处理。

                  全局异常处理

                  什么是全局异常处理

                  全局异常处理是一种统一处理异常的方式,可以捕获Controller中抛出的异常并进行处理。通过配置全局异常处理,可以避免在每个Controller中都编写异常处理代码的繁琐工作,提高开发效率并且减少错误。

                  在SpringMVC中使用全局异常处理

                  既然是全局异常处理,那么我们需要在SpringMVC的配置文件中进行配置。可以使用SimpleMappingExceptionResolver进行配置。该类会将异常类型映射到异常处理页面或者直接返回异常信息。配置如下:

                  <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
                      <property name="exceptionMappings">
                          <props>
                              <prop key="java.lang.Exception">error</prop>
                          </props>
                      </property>
                      <property name="defaultErrorView" value="error"/>
                  </bean>
                  

                  exceptionMappings属性用于配置异常类型和处理页面的映射,defaultErrorView属性用于指定默认的处理页面。上述配置表示:当Controller中抛出java.lang.Exception类的异常时,会自动跳转到名为error的处理页面。

                  示例说明

                  假设我们有一个UserController类和一个UserService类,需要通过Controller向客户端返回一个用户对象。当UserService类中没有找到对应的用户时,需要抛出NoSuchUserException异常。

                  我们可以在SpringMVC的配置文件中配置全局异常处理,捕获到该异常类型后,跳转到error页面或者直接返回异常信息。客户端可以通过AJAX调用请求获取数据,如果出现异常,可以根据处理页面或者返回的异常信息进行提示或者处理。示例代码如下:

                  @RequestMapping("/getUser")
                  @ResponseBody
                  public User getUser(String id){
                      User user = userService.getUserById(id);
                      if(user == null){
                          throw new NoSuchUserException();
                      }
                      return user;
                  }
                  
                  public class NoSuchUserException extends RuntimeException {
                      //自定义异常
                  }
                  
                  上一篇:比较详细的关于javascript 解析json的代码 下一篇:关于fastjson的@JSONField注解的一些问题(详解)

                  相关文章

                  1. <tfoot id='Re1Vn'></tfoot>

                      <small id='Re1Vn'></small><noframes id='Re1Vn'>

                      <i id='Re1Vn'><tr id='Re1Vn'><dt id='Re1Vn'><q id='Re1Vn'><span id='Re1Vn'><b id='Re1Vn'><form id='Re1Vn'><ins id='Re1Vn'></ins><ul id='Re1Vn'></ul><sub id='Re1Vn'></sub></form><legend id='Re1Vn'></legend><bdo id='Re1Vn'><pre id='Re1Vn'><center id='Re1Vn'></center></pre></bdo></b><th id='Re1Vn'></th></span></q></dt></tr></i><div id='Re1Vn'><tfoot id='Re1Vn'></tfoot><dl id='Re1Vn'><fieldset id='Re1Vn'></fieldset></dl></div>
                      <legend id='Re1Vn'><style id='Re1Vn'><dir id='Re1Vn'><q id='Re1Vn'></q></dir></style></legend>
                        <bdo id='Re1Vn'></bdo><ul id='Re1Vn'></ul>