无法直接访问主页,需要添加项目名称

时间:2018-05-24 19:03:32

标签: java spring-mvc

我用Spring Framework开始了我的旅程,不能做一件简单的事情。

我启动服务器并转到localhost:8080 / - 我获得了HTTP状态404和 我需要添加项目名称来实际查看我的主页,所以网址就像 localhost:8080 / projectname - 现在它显示home.jsp

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.company.projectname")
public class ApplicationConfig {

    @Bean
     ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();

        viewResolver.setPrefix("/WEB-INF/view/");
        viewResolver.setSuffix(".jsp");

        return viewResolver;
    }
}

public class MvcDispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    protected Class<?>[] getRootConfigClasses() {
        return null;
    }

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

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


@Controller
public class HomeController {

    @GetMapping("/")
    public String home(){
        return "home";
    }
}

代码只是一个基本配置,最重要的是有Spring Security配置,但我真的不认为这是相关的。

1 个答案:

答案 0 :(得分:-1)

实际上,你是对的,你的配置与上下文路径的前缀无关。 您可能正在使用tomcat或类似的外部容器,并且它设置了前缀,因为它可以同时托管多个不同的Web应用程序。

如果您正在使用tomcat - 最简单的方法就是将$(document).ready(function(){... 目录中的projectname.war文件重命名为webapps并重新启动容器。然后,您就可以像ROOT.war一样访问它了。

另一种方法是使用localhost:8080/为您的应用程序配置上下文路径:

$CATALINA_HOME/conf/server.xml

但在这种情况下使用默认设置,您的应用程序将被部署两次,因此不要忘记在同一文件中关闭自动部署功能。