首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误[org.apache.velocity] ResourceManager :无法在任何资源加载器中找到资源“layout.vm”

错误[org.apache.velocity] ResourceManager :无法在任何资源加载器中找到资源“layout.vm”
EN

Stack Overflow用户
提问于 2016-03-11 09:38:35
回答 1查看 3.5K关注 0票数 0

MyController.java:

代码语言:javascript
复制
@Controller
public class ForemanController {

    @RequestMapping({"/index", "/"})
    public ModelAndView home(Model model){

        Map<String, String> map = new HashMap<String, String>();
        // .. fill map
        return new ModelAndView("index", "map", map);
    }   
}

ServletInitializer.java:

代码语言:javascript
复制
public class ServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class<?>[0];
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class<?>[]{AppConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}

AppConfig.java:

代码语言:javascript
复制
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"com.my"})
public class AppConfig {

    @Bean
    public VelocityConfigurer velocityConfig(){
        VelocityConfigurer velocityConfig = new VelocityConfigurer();
        velocityConfig.setResourceLoaderPath("/");
        return velocityConfig;
    }

    @Bean
    public VelocityLayoutViewResolver viewResolver(){
        VelocityLayoutViewResolver viewResolver = new VelocityLayoutViewResolver();
        viewResolver.setCache(true);
        viewResolver.setPrefix("/WEB-INF/views/");
        viewResolver.setSuffix(".vm");
        return viewResolver;
    }

}

WEB/views下的index.vm:

代码语言:javascript
复制
<!DOCTYPE HTML>
<html>
<head>
    <title>foreman</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    hello world!
</body>
</html>

我部署到Wildfly,部署成功,使用'localhost:8080/myapp‘访问主页,然后得到Internal Server Error

代码语言:javascript
复制
2016-03-11 01:48:58,844 ERROR [org.apache.velocity] (default task-11) ResourceManager : unable to find resource 'layout.vm' in any resource loader.

在我的项目中,我没有看到任何地方提到“布局”。这是从哪里来的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-11 10:25:54

在bean viewResolver中搜索模板layout.vmviewResolver的默认行为。

layout.vm将用作控制器确定的视图的框架或包装器。这非常方便,因为您不需要考虑如何合并特殊视图和常规HTML页面。

例如,请查看此教程 (从“创建模板”开始)和此问题获取详细信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35936650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档