SSM框架中的局部异常和全局异常(七)

一、静态块相关的执行顺序

1、静态属性隶属于静态块

2、非静态属性隶属于块

3、构造器

4、继承体系下的类的加载顺序

 

Person:static { }

 

student:static { }

 

Person:{ }

 

Person()

 

student:{ }

 

Student()

二、Spring异常处理的局部异常处理:

   只针对当前action控制器有效 

   1、使用:在当前控制器中添加一个方法即可

@Controller
public class UserAction {
    @Autowired
    private UserService userService;
    
    @RequestMapping("findAll")
    public String findAll(HttpServletRequest request){
        request.setAttribute("users", userService.findAll());
        return "index";
    }
    
    @ExceptionHandler
    public String error(RuntimeException e,HttpServletRequest request){
        request.setAttribute("e", e);
        return "error";
    }
}

  2、页面中直接打印 ,打印控制传递过来的e对象

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  
  <body>
    ${e}
  </body>
</html>

 

三、spring的全局异常处理(针对当前所有控制器有效

  1、需要在spring核心配置文件中写 

<!-- 配置全局异常 -->
    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
            <props>
                <prop key="java.lang.RuntimeException">error</prop>
            </props>
        </property>
    </bean>

  2、页面打印

  注意:打印的是exception; 使用全局异常时spring底层已经将信息封装到exception中

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  </head>
  
  <body>
    ${exception }
  </body>
</html>

 

四、spring静态资源的引入

注意顺序
<
mvc:resources location="/static/" mapping="/static/**"/> <mvc:annotation-driven/>

 

 

posted @ 2018-06-24 15:33  刚刚睡醒  阅读(222)  评论(0编辑  收藏  举报