开发者

Spring welcome-file-list correct mapping

I know that in spring I must define welcome-file, which should be outside of WEB-INF fol开发者_StackOverflow中文版der, so I define it like this:

web.xml:

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>


<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

But actually my real code is in WEB-INF/jsp/contact.jsp

So I always have to do this:

<jsp:forward page="/index"></jsp:forward>

And in my controller this means:

@RequestMapping("/index")
public String listContacts(Map<String, Object> map) {

    map.put("contact", new Contact());
    map.put("contactList", contactService.listContact());

    return "contact";
}

How can I make it this way, that welcome-file always goes to my index mapping, which leads to contact.jsp?

Feel free to ask questions, if this was confusing...


@RequestMapping({"/index", "/"})

and

<welcome-file-list>
    <welcome-file></welcome-file>
</welcome-file-list>

worked for me.


See my answer: https://stackoverflow.com/a/15551678/173149 or just:

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
    <url-pattern>/index.htm</url-pattern>    <<==  *1*
</servlet-mapping>
<welcome-file-list>
    <welcome-file>index.htm</welcome-file>   <<== *2*
</welcome-file-list>


In case of java configuration you can override two methods in class that extends WebMvcConfigurerAdapter

@Override
public void addViewControllers(ViewControllerRegistry registry) {
    registry.addViewController("/").setViewName("/index");
}

@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
}

If you wanna serve index.html explicitly, turn it into a resource override a method in the same class as below:

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/index.html").addResourceLocations("/WEB-INF/views/index.html");
}

Of course addResourceLocations must follows the folder choosen to hold your views.

See these samples


Try using

<welcome-file-list>
  <welcome-file>/index</welcome-file>
</welcome-file-list>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜