MyController.java:
@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:
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:
@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:
<!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
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.在我的项目中,我没有看到任何地方提到“布局”。这是从哪里来的?
发布于 2016-03-11 10:25:54
在bean viewResolver中搜索模板layout.vm是viewResolver的默认行为。
layout.vm将用作控制器确定的视图的框架或包装器。这非常方便,因为您不需要考虑如何合并特殊视图和常规HTML页面。
例如,请查看此教程 (从“创建模板”开始)和此问题获取详细信息。
https://stackoverflow.com/questions/35936650
复制相似问题