1
运行Web应用程序时获取javax.servlet.ServletException: Could not resolve view with name 'home' in servlet with name 'dispatcher'
。对我来说@RequestMapping
,瓷砖配置和映射看起来不错,但仍然出现错误。javax.servlet.ServletException:无法在名称为'dispatcher'的servlet中使用名称'home'解析视图
这里是WebAppInitializr.java
public class WebAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
rootContext.register(RootConfig.class, MessageSourceConfig.class);
servletContext.addListener(new ContextLoaderListener(rootContext));
AnnotationConfigWebApplicationContext dispatcherServlet = new AnnotationConfigWebApplicationContext();
dispatcherServlet.register(WebMvcConfig.class);
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new DispatcherServlet(dispatcherServlet));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
}
而且一个WebAppConfig
@EnableWebMvc
@ComponentScan(basePackages = { "com.examples" })
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
private static final String TILES_VIEW_RESOLVER_DEFINITION = "/WEB-INF/tiles/tiles_configuration.xml";
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**").addResourceLocations("/assets/").setCachePeriod(31556926);
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Bean
public TilesViewResolver tilesViewResolver() {
TilesViewResolver tilesViewResolver = new TilesViewResolver();
tilesViewResolver.setOrder(2);
return tilesViewResolver;
}
@Bean
public UrlBasedViewResolver viewResolver() {
UrlBasedViewResolver viewResolver = new UrlBasedViewResolver();
viewResolver.setViewClass(TilesView.class);
return viewResolver;
}
@Bean
public TilesConfigurer tilesConfigurer() {
TilesConfigurer tilesConfigurer = new TilesConfigurer();
tilesConfigurer.setDefinitions(new String[] { TILES_VIEW_RESOLVER_DEFINITION });
tilesConfigurer.setCheckRefresh(true);
return tilesConfigurer;
}
}
请求映射我有在控制器是: @RequestMapping(value = "/", method = RequestMethod.GET)
而瓦片定义:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
"http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>
<definition name="defaultTemplate" template="/WEB-INF/views/templates/baseLayout.jsp">
<put-attribute name="meta" value="/WEB-INF/views/templates/meta.jsp" />
<put-attribute name="navbar" value="/WEB-INF/views/templates/navbar.jsp" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/WEB-INF/views/templates/footer.jsp" />
</definition>
<definition name="home" extends="defaultTemplate">
<put-attribute name="title" value="Home" />
<put-attribute name="body" value="/WEB-INF/views/home.jsp" />
</definition>
</tiles-definitions>
任何帮助解决这个问题将不胜感激。
雷霆嗨你。如果你想使一些tile可选,那么你需要写 –
2015-05-10 13:30:30
<title>
元素中的以下代码行,你能不能请您出示baseLayout.jsp页?我今天也面临这个错误并能够解决它。您需要通过以下方式在baseLayout.jsp中指定元,导航栏,正文和页脚,'<%@ include file =“/ WEB-INF/views/includes/taglibs.jsp “%>
<瓦片:insertAttribute名称=” 元 “/>您需要在