希望在spring boot 1.2.4 中加入ResourceBundleThemeSource管理主题资源, 成功启动后访问freemarker视图, 读取主题资源报错, 日志中看到, spring仅查找了messageSource而未查找themeSource, 有人碰到过此问题吗?
我尝试过在WebMvcConfigurerAdapter中通过@Bean直接将ResourceBundleThemeSource拿如管理, 无论是加入了ResourceBundleThemeSource还是LocaleMessageSource启动都会报错.
随后仿造WebMvcAutoConfiguration那个类, 修改代码将ResourceBundleThemeSource纳入spring管理, 启动成功, 且看到autoconfig正确报告, 且找到我配置的资源, 但读取时, 日志中看出, 仅查找了MessageSource, 未查找ThemeSource
日志好像是这样的(全凭记忆)
could not found resource name defaultThemeName for zh_CN // 这里未查找theme资源而只查找了message资源
求大神解答!!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
经过摸索,终于发现病灶....改太急....
@BeanpublicThemeSourcemessageSource(){ResourceBundleThemeSourcemessageSource=newResourceBundleThemeSource();if(StringUtils.hasText(this.basename)){messageSource.setBasenamePrefix(trimAllWhitespace(this.basename));}returnmessageSource;}改为
@BeanpublicThemeSourcethemeSource(){ResourceBundleThemeSourcethemeSource=newResourceBundleThemeSource();if(StringUtils.hasText(this.basename)){themeSource.setBasenamePrefix(trimAllWhitespace(this.basename));}returnthemeSource;}日志
2015-07-0809:29:07.611DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Exposingrequestattribute'base'withvalue[http://localhost:8080]tomodel
2015-07-0809:29:07.612DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'message'oftype[java.lang.String]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.612DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'request'oftype[org.springframework.web.servlet.support.RequestContext]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.612DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'org.springframework.web.context.request.async.WebAsyncManager.WEB_ASYNC_MANAGER'oftype[org.springframework.web.context.request.async.WebAsyncManager]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.612DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'org.springframework.web.servlet.DispatcherServlet.CONTEXT'oftype[org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.612DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'org.springframework.web.servlet.resource.ResourceUrlProvider'oftype[org.springframework.web.servlet.resource.ResourceUrlProvider]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.612DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'characterEncodingFilter.FILTERED'oftype[java.lang.Boolean]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.612DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'org.springframework.web.servlet.DispatcherServlet.THEME_SOURCE'oftype[org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.612DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'org.springframework.web.servlet.DispatcherServlet.LOCALE_RESOLVER'oftype[org.springframework.web.servlet.i18n.CookieLocaleResolver]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.613DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'org.springframework.web.servlet.i18n.CookieLocaleResolver.LOCALE'oftype[java.util.Locale]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.613DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'org.springframework.web.servlet.HandlerMapping.bestMatchingPattern'oftype[java.lang.String]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.613DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'org.springframework.web.servlet.DispatcherServlet.OUTPUT_FLASH_MAP'oftype[org.springframework.web.servlet.FlashMap]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.613DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'org.springframework.web.servlet.HandlerMapping.pathWithinHandlerMapping'oftype[java.lang.String]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.613DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'org.springframework.web.servlet.DispatcherServlet.FLASH_MAP_MANAGER'oftype[org.springframework.web.servlet.support.SessionFlashMapManager]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.613DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'org.springframework.web.servlet.HandlerMapping.uriTemplateVariables'oftype[java.util.LinkedHashMap]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.613DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'org.springframework.web.servlet.DispatcherServlet.THEME_RESOLVER'oftype[org.springframework.web.servlet.theme.CookieThemeResolver]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.613DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'org.springframework.core.convert.ConversionService'oftype[org.springframework.format.support.DefaultFormattingConversionService]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.613DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'base'oftype[java.lang.String]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.613DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'springMacroRequestContext'oftype[org.springframework.web.servlet.support.RequestContext]torequestinviewwithname'common/test.html'
2015-07-0809:29:07.615DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :RenderingFreeMarkertemplate[common/test.html]inFreeMarkerView'common/test.html'
2015-07-0809:29:07.667 WARN13264---[nio-8080-exec-1]o.s.c.s.ResourceBundleMessageSource :ResourceBundle[defaultThemeName]notfoundforMessageSource:Can'tfindbundleforbasenamedefaultThemeName,localeen_US
这两行很可疑,为什么主题资源是这个类 org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext
2015-07-0809:29:07.612DEBUG13264---[nio-8080-exec-1]o.s.w.s.view.freemarker.FreeMarkerView :Addedmodelobject'org.springframework.web.servlet.DispatcherServlet.THEME_SOURCE'oftype[org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext]torequestinviewwithname'common/test.html'
配置如下
spring.messages.basename=config/i18nspring.messages.encoding="UTF-8"spring.messages.cacheSeconds=-1spring.theme.basename=config/theme-