好的,这太荒谬了。如何设置Spring MVC webapp以使用DispatcherServlet并具有index.html的默认页面
几天前我问basically this question,并没有得到它。我已经尝试过各种网页的各种建议,没有一个能让我想到我想要的东西。我已经遍历了可执行的Spring文档,它使复杂的事情变得简单而简单。
现在我已经学会了更多一点,也许我可以再次表达自己的机会,希望更清楚。
我想要以下内容:使用DispatcherServlet的Spring MVC 4.0 Web(不是SpringBoot)应用程序,只要在浏览器中输入基本URL http://myserver.mycompany.com:8080/myapp,它也会显示默认的index.html页面。
这是一个要求,不应该输入http://myserver.mycompany.com:8080/myapp/index.html来到这个页面。
DispatcherServlet会映射如http://myserver.mycompany.com:8080/myapp/dothis和 http://myserver.mycompany.com:8080/myapp/do/that 到适当配置的控制器的URL。
我知道这个问题一直在网上问过,所有的答案都迷失在春天的细节中,他们都没有在我的情况下工作。
换句话说,我想在非Spring webapp中使用欢迎页面的功能,并在同一应用程序中使用Spring-MVC分派器功能。它不必在web.xml中配置。只要它像上面那样工作。
哦,最好是我想要使用Spring Annotations的解决方案。
简单的问题。我希望有人能为我提供一个简单的答案。
UPDATE:问题答案如下要求: @JB_Nizet:您的建议,只是使用在簧文档推荐的代码,并在web.xml中定义的欢迎页面是我一直在努力,并没有关系”工作。这是有道理的。 Spring文档方法允许从/中提供静态html文档。但它仍然阻止从根网址显示欢迎页面。您可以通过在url中提供index.html来获取index.html,但不会发生从/到/index.html的映射。
@Aeseir:是的,我更喜欢Java Config方法,我上面称之为“Spring Annotations”。我会用我自己的一个答案来回答你的“愚蠢的问题”:我尝试了不同的方法来添加一个“只映射到”/“的控制器,但我不明白这个控制器会是什么?
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("forward:index.html");
}
}
http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-default-servlet-handler –
谢谢。尽管我已经到过这个页面,但它仍然让我感到困惑。我没有看到在这个页面中的哪个地方显示了将默认应用程序url映射到index.html的东西。它缺少一些信息,我的微弱的春天的黑夜大脑并不健康。你是否必须编写一个自定义servlet来提供index.html? –
不可以。您只需使用文档中的代码(XML或Java-Config),Spring将为静态资源委派默认servlet。所以它会从webapp提供静态资源,就像你根本没有使用Sring一样。按照servlet规范的说明,默认页面在web.xml文件中配置。默认情况下,index.html是默认页面之一。 –