从DispatcherServlet到ThemeResolver

tomcat启动,DispatcherServlet调用initThemeResolver方法初始化ThemeResolver,先加载用户注入的ThemeResolver,如果用户没有注入ThemeResolver则获取DispatcherServlet.properties默认配置的org.springframework.web.servlet.theme.FixedThemeResolver。

FixedThemeResolver接口里面有两个方法resolveThemeName、setThemeName。resolveThemeName方法通过给定请求解析当前主题名字,解析后主题名为"theme"。setThemeName方法不支持被调用,调用时将会报一个异常

throw new UnsupportedOperationException("Cannot change theme - use a different theme resolution strategy")。

DispatcherServlet调用doService方法时,会给请求设置主题解析器request.setAttribute(THEME_RESOLVER_ATTRIBUTE, this.themeResolver)。默认配置是主题名即被设置为“theme”。

猜你喜欢

转载自blog.csdn.net/qq_26400953/article/details/86643195