Web 视图渲染

视图解析

ViewResolver接口

public interface ViewResolver {    View resolveViewName(String viewName, Locale locale) throws Exception;}

View接口

public interface View {    @Nullable    default String getContentType() {        return null;    }    void render(@Nullable Map<String, ?> model, HttpServletRequest request, HttpServletResponse response)            throws Exception;}

视图解析器的工作原理很简单,外部会传给视图解析器一个视图名和地区对象, 解析两个参数返回一个视图。 视图做的工作就是根据外部传入的模型,来渲染出html页面,使用 并使用 HttpServletResponse 输出到前端。

Spring 提供的视图解析器

视图解析器说明
AbstractCachingViewResolver会对解析的View对象缓存 以提高性能
UrlBasedViewResolver会对redirect:、forward:等特殊的url特殊处理,并将请求转发给子类实现,返回具体视图
InternalResourceViewResolver继承了 UrlBasedViewResolver,可以用来访问内部资源,比如jsp等待
FreeMarkerViewResolver用来支持FreeMarker模板
ContentNegotiatingViewResolver用来支持HTTP的内容协商功能
BeanNameViewResolver一种极为灵活的视图解析方式,直接通过 Spring 中的容器 Bean 名称来获取视图

创建JSP视图

使用 Thymeleaf

三个与spring集成的bean

响应

静态资源配置

    <!--配置静态资源过滤-->    <mvc:resources mapping="/js/**" location="/js/"/>

响应json

@ResponseBody