简体   繁体   English

javax.servlet.ServletException:无法解析名称为“ dispatcher”的servlet中名称为“ home”的视图

[英]javax.servlet.ServletException: Could not resolve view with name 'home' in servlet with name 'dispatcher'

Getting javax.servlet.ServletException: Could not resolve view with name 'home' in servlet with name 'dispatcher' when running a web app. 获取javax.servlet.ServletException: Could not resolve view with name 'home' in servlet with name 'dispatcher'运行Web应用程序时, javax.servlet.ServletException: Could not resolve view with name 'home' in servlet with name 'dispatcher' To me the @RequestMapping , tiles configuration and mapping looks good but still getting an error. 对我来说,@ @RequestMapping@RequestMapping贴配置和映射看起来不错,但仍然出现错误。

Here is the WebAppInitializr.java 这是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("/");
    }

}

And the WebAppConfig 还有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;
    }

}

The request mapping i have in the controller is: @RequestMapping(value = "/", method = RequestMethod.GET) 我在控制器中的请求映射为: @RequestMapping(value = "/", method = RequestMethod.GET)

And the tiles definition: 和磁贴的定义:

<?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>

Any help resolving this issue would be highly appreciated. 解决此问题的任何帮助将不胜感激。

In your tile definition file you put the title attribute but in the your baseLayout.jsp file you didn't placed it. 在磁贴定义文件中,您放置了title属性,但在baseLayout.jsp文件中却未放置它。 You need to add the following line of code inside your <title> element of the baseLayout.jsp file 您需要在baseLayout.jsp文件的<title>元素内添加以下代码行

<title><tiles:getAsString name="title"/></title>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Maven项目异常:javax.servlet.ServletException:无法解析名称为“ dispatcher”的servlet中名称为“ login”的视图 - Maven project exception : javax.servlet.ServletException: Could not resolve view with name 'login' in servlet with name 'dispatcher' javax.servlet.ServletException:无法解析名称为“ dispatcher”的servlet中名称为“ index.html”的视图 - javax.servlet.ServletException: Could not resolve view with name 'index.html' in servlet with name 'dispatcher' javax.servlet.ServletException:无法解析名为“appServlet”的servlet中名为“home”的视图 - javax.servlet.ServletException: Could not resolve view with name 'home' in servlet with name 'appServlet' javax.servlet.ServletException:无法解析名称为的视图 - javax.servlet.ServletException: Could not resolve view with name javax.servlet.ServletException-无法解析名称为view的视图 - javax.servlet.ServletException - Could not resolve view with name javax.servlet.ServletException:无法解析名称为“ dispatcherServlet”的servlet中名称为“ forward:/ index”的视图 - javax.servlet.ServletException: Could not resolve view with name 'forward:/index' in servlet with name 'dispatcherServlet' Spring Security抛出javax.servlet.ServletException:无法解析名称为&#39;j_spring_security_check&#39;的视图 - Spring security throws javax.servlet.ServletException: Could not resolve view with name 'j_spring_security_check' Javax.servlet.ServletException - Javax.servlet.ServletException javax.servlet.ServletException:在范围内找不到bean [name] - javax.servlet.ServletException: bean [name] not found within scope Spring4 $ Tiles3集成:无法在名称为“ dispatcher”的servlet中解析名称为“ home”的视图 - Spring4 $ Tiles3 integration: Could not resolve view with name 'home' in servlet with name 'dispatcher'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM