代码之家  ›  专栏  ›  技术社区  ›  Vivek Dhiman

无法通过控制器呈现html模板

  •  0
  • Vivek Dhiman  · 技术社区  · 4 年前

    我使用的是SpringBootMVC。我正处于异常之下。

        com.github.mjeanroy.springmvc.view.mustache.exceptions.MustacheTemplateNotFoundException: Mustache template /templates/home.template.html does not exist
    
            2020-04-17 13:23:40.090 ERROR 25701 --- [nio-8080-exec-1] c.g.m.s.v.m.core.DefaultTemplateLoader   : Mustache template '/templates/home.template.html' does not exist, template is not found
    2020-04-17 13:23:40.095 ERROR 25701 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.github.mjeanroy.springmvc.view.mustache.exceptions.MustacheCompilationException: com.github.mjeanroy.springmvc.view.mustache.exceptions.MustacheTemplateNotFoundException: Mustache template /templates/home.template.html does not exist] with root cause
    
    com.github.mjeanroy.springmvc.view.mustache.exceptions.MustacheTemplateNotFoundException: Mustache template /templates/home.template.html does not exist
            at com.github.mjeanroy.springmvc.view.mustache.core.DefaultTemplateLoader.getTemplate(DefaultTemplateLoader.java:150) ~[springmvc-mustache-0.4.0.jar:na]
            at com.github.mjeanroy.springmvc.view.mustache.mustachejava.SpringMustacheFactory.getReader(SpringMustacheFactory.java:67) ~[springmvc-mustache-0.4.0.jar:na]
            at com.github.mustachejava.MustacheParser.compile(MustacheParser.java:26) ~[compiler-0.9.6.jar:na]
            at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[na:1.8.0_202]
            at com.github.mustachejava.DefaultMustacheFactory.compile(DefaultMustacheFactory.java:179) ~[compiler-0.9.6.jar:na]
            at com.github.mjeanroy.springmvc.view.mustache.mustachejava.MustacheJavaCompiler.doCompile(MustacheJavaCompiler.java:64) ~[springmvc-mustache-0.4.0.jar:na]
            at com.github.mjeanroy.springmvc.view.mustache.core.AbstractMustacheCompiler.compile(AbstractMustacheCompiler.java:68) ~[springmvc-mustache-0.4.0.jar:na]
            at com.github.mjeanroy.springmvc.view.mustache.MustacheView.renderTemplate(MustacheView.java:158) ~[springmvc-mustache-0.4.0.jar:na]
            at com.github.mjeanroy.springmvc.view.mustache.MustacheView.renderMergedTemplateModel(MustacheView.java:136) ~[springmvc-mustache-0.4.0.jar:na]
            at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:179) ~[spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:316) ~[spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1373) ~[spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1118) ~[spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1057) ~[spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) ~[tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.33.jar:9.0.33]
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.5.RELEASE.jar:5.2.5.RELEASE]
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) [tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) [tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373) [tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1594) [tomcat-embed-core-9.0.33.jar:9.0.33]
            at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.33.jar:9.0.33]
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_202]
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_202]
            at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.33.jar:9.0.33]
            at java.lang.Thread.run(Thread.java:748) [na:1.8.0_202]
    

    enter image description here

        package com.contentful.demo.controller;
    
    import com.contentful.demo.DemoApplication;
    import com.contentful.demo.constants.SystemConstants;
    import com.contentful.java.cda.CDAArray;
    import com.contentful.java.cda.CDAEntry;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.servlet.ModelAndView;
    import com.github.mjeanroy.springmvc.view.mustache.core.ModelAndMustacheView;
    
    
    
    @Controller
    public class HomePageController {
        @GetMapping("/home")
        public ModelAndView homePage(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
            CDAEntry array = DemoApplication.client
                    .fetch(CDAEntry.class)
                    .one(SystemConstants.CONTENT_TYPE_HOMEPAGE);
            ModelAndMustacheView view = new ModelAndMustacheView("home");
            view.addObject("home", array);
            return view;
        }
    }
    

    文件夹结构 enter image description here 怎么能解决这个问题?

    0 回复  |  直到 4 年前