标签:容器 整合 gdi lan attr 业务 url post 反射创建对象
→ @ModelAttribute 标注的方法提前运行
→ 确定目标方法用的参数
→ 有注解
→ 无注解
→ 是否是 ServletAPI
→ 是否是 Model / Map 类型
→ 是否自定义类型
→ 看隐含模型中是否有同名的,有就赋值
→ 如果没有,看是否是 @SessionAttributes 标注的属性
→ 如果都不是,利用反射创建对象
→ 执行目标方法,返回 ModelAndView
→ 若有异常,使用异常解析器(HandlerExceptionResolver) 处理异常,然后返回 mav
→ 调用 render() 进行页面渲染
→ 视图解析器根据视图名得到视图对象
→ 视图对象调用 render() 完成渲染
<context:component-scan base-package="cn.edu.nuist" use-default-filters="false">
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Controller"/>
<context:include-filter type="annotation"
expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
</context:component-scan>
<context:component-scan base-package="cn.edu.nuist" use-default-filters="true">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation"
expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
</context:component-scan>
<!-- Spring 容器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- SpringMVC 容器 -->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springMVC.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map all requests to the DispatcherServlet for handling -->
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
标签:容器 整合 gdi lan attr 业务 url post 反射创建对象
原文地址:https://www.cnblogs.com/liujiaqi1101/p/13674565.html