如何避免在SpringResourceTemplateResolver上调用setApplicationContext?

问题描述 投票:2回答:1

我目前正在通过Thymeleaf设置Spring MVC项目,请按照http://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html#spring-mvc-configuration上的指南进行操作>

[尝试亲吻代码,我首先用implements ApplicationContextAware替换了@Inject private ApplicationContext applicationContext和setter方法。但是我不明白为什么我必须在继承继承Spring接口setApplicationContext()SpringResourceTemplateResolver上调用ApplicationContextAware

如何避免这种情况?

编辑:如果删除templateResolver.setApplicationContext(applicationContext);行,则在访问根目录时会出现此异常:

java.lang.IllegalArgumentException: Application Context cannot be null
    org.thymeleaf.util.Validate.notNull(Validate.java:37)
    org.thymeleaf.spring4.templateresource.SpringResourceTemplateResource.<init>(SpringResourceTemplateResource.java:64)
    org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver.computeTemplateResource(SpringResourceTemplateResolver.java:69)
    org.thymeleaf.templateresolver.AbstractConfigurableTemplateResolver.computeTemplateResource(AbstractConfigurableTemplateResolver.java:1221)
    org.thymeleaf.templateresolver.AbstractTemplateResolver.resolveTemplate(AbstractTemplateResolver.java:356)
    org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:840)
    org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:608)
    org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1087)
    org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1061)
    org.thymeleaf.spring4.view.ThymeleafView.renderFragment(ThymeleafView.java:335)
    org.thymeleaf.spring4.view.ThymeleafView.render(ThymeleafView.java:189)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1257)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

注意:我使用的是最新版本:Spring 4.3.3.RELEASE和Thymeleaf 3.0.2.RELEASE(当然,我导入了thymeleaf-spring4)。

我目前正在与Thymeleaf一起建立Spring MVC项目,请按照以下教程中的说明进行操作:http://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html#spring-mvc-configuration尝试对进行亲吻。 ..

java spring spring-mvc thymeleaf applicationcontext
1个回答
0
投票

[重新检查我错过的内容后,似乎缺少的@Configuration注释是Spring的来源,未将ApplicationContext注入SpringResourceTemplateResolver

© www.soinside.com 2019 - 2024. All rights reserved.