spring-mvc配置文件

xiaoxiao2021-02-27  174

使用该注解需要导包 spring-webmvc 3.2.8.RELEASE <context:component-scan base-package="annotations"/> <!-- 配置组件扫描 --> Spring容器会检查base-package指定的包及其子包下面的所有的类,如果该类 前面有一些特定的注解(比如@Component),则容器会将这个类纳入容器进行管理,(相当于配置文件当中有一个bean元素) 此标签是告诉Spring 来扫描指定包下的类,并注册被@Component,@Controller,@Service,@Repository等注解标记的组件。 <mvc:annotation-driven/>是告知Spring,我们启用注解驱动。然后Spring会自动为我们注册如下的几个Bean到工厂中,来处理我们的请求。 说白了,就是用来确定该调用那个类的哪个处理方法。 会处理@RequestMapping 注解,并将其注册到请求映射表中

RequestMappingHandlerMapping

BeanNameUrlHandlerMapping

它是处理请求的适配器,说白了,就是确定调用哪个类的哪个方法,并且构造方法参数,返回值。

RequestMappingHandlerAdapter

HttpRequestHandlerAdapter

SimpleControllerHandlerAdapter

ExceptionHandlerExceptionResolver

ResponseStatusExceptionResolver

DefaultHandlerExceptionResolver <!-- 配置视图解析器 根据 controller类中对应 该请求的处理方法的返回值的视图名,将此视图名补充完整。 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--前缀--> <property name="prefix" value="/WEB-INF/"/> <!-- 后缀--> <property name="suffix" value=".jsp"/> </bean> 异常处理器 <!-- 配置简单异常处理器 当发生下述声明的异常时, 根据视图解析器的位置,找到具体该文件的位置。会进入相应的 ex1,或 ex2界面。 --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="java.lang.NumberFormatException">ex1</prop> <prop key="java.lang.StringIndexOutOfBoundsException">ex2</prop> </props> </property> </bean> 异常处理方式二使用@ExceptionHandler注解。 @ExceptionHandler /* * 这是一个异常处理方法,当异常发生之后, * DispatcherServlet会调用该方法来处理异常。 * e:处理器方法抛出的异常。 */ public String handleEx(Exception e, HttpServletRequest request){ System.out.println("handleEx()"); //依据异常类型,做不同的处理。 if(e instanceof NumberFormatException){ request.setAttribute("msg", "亲,请输入正确的数字"); return "ex"; } if(e instanceof StringIndexOutOfBoundsException){ request.setAttribute("msg", "下标越界啦"); return "ex"; } //系统异常 return "error"; }
转载请注明原文地址: https://www.6miu.com/read-15909.html

最新回复(0)