Rumah  >  Soal Jawab  >  teks badan

java - SpringMVC 中 WebApplicationInitializer 没有被加载

我在使用 SpringMVC 中的 AbstractAnnotationConfigDispatcherServletInitializer 来实现使用 java 配置 servlet。

我在访问 localhost:8080/ 出现的是 404 错误,下面是相关代码

WebAppInitializer

public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class<?>[]{ WebConfig.class };
    }

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

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

WebConfig

@Configuration
@EnableWebMvc
@ComponentScan("spittr.web")
public class WebConfig extends WebMvcConfigurerAdapter{
    @Bean
    public ViewResolver viewResolver(){
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        resolver.setExposeContextBeansAsAttributes(true);
        return resolver;
    }
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}

HomeController

@Controller
public class HomeController {
    @RequestMapping(value = "/",method = GET)
    public String home(){
        return "home";
    }
}

home.jsp 文件在 WEB-INF/views/

Maven

 <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version> 4.1.5.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        ...
    </dependencies>
请问一下,为什么我在访问 `localhost:8080/` 出现的是 404 错误
大家讲道理大家讲道理2760 hari yang lalu1045

membalas semua(1)saya akan balas

  • ringa_lee

    ringa_lee2017-04-18 10:30:47

    Menjumpai jawapannya... Intellij IDEA Apabila mengeksport artfacts, struktur berikut telah dieksport:

    artfacts/
            --/ META-INF
            --/ WEB-INF
              --/ veiws
                --/ home.jsp
              --/ classes
                --/(class文件)

    Anda boleh menemuinya dengan merujuk kepada Reka Letak Direktori Standard Tomcat 7.0.

    Bukan di sini /WEB-INF/lib Folder ini digunakan untuk mengandungi pakej pergantungan yang diperlukan untuk penyusunan... Projek ini tidak dikonfigurasikan secara automatik untuk anda...

    Dan artfacts yang dieksport belum lagi melaporkan mesej ralat...

    Pergi ke Project Structure diri sendiri untuk menukar kandungan out_put dan letakkan pakej pergantungan di bawah /WEB-INF/lib...

    balas
    0
  • Batalbalas