我用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配置,但我真的不认为这是相关的。
答案 0 :(得分:-1)
实际上,你是对的,你的配置与上下文路径的前缀无关。 您可能正在使用tomcat或类似的外部容器,并且它设置了前缀,因为它可以同时托管多个不同的Web应用程序。
如果您正在使用tomcat - 最简单的方法就是将$(document).ready(function(){...
目录中的projectname.war
文件重命名为webapps
并重新启动容器。然后,您就可以像ROOT.war
一样访问它了。
另一种方法是使用localhost:8080/
为您的应用程序配置上下文路径:
$CATALINA_HOME/conf/server.xml
但在这种情况下使用默认设置,您的应用程序将被部署两次,因此不要忘记在同一文件中关闭自动部署功能。