복붙노트

[SPRING] Spring welcome-file-list 올바른 매핑

SPRING

Spring welcome-file-list 올바른 매핑

나는 봄에 WEB-INF 폴더 밖에 있어야하는 환영 파일을 정의해야한다는 것을 알고 있으므로 다음과 같이 정의한다.

веб.хмл :

<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>

하지만 실제로 나의 실제 코드는 WEB-INF / jsp / contact.jsp에있다.

그래서 저는 항상 이것을해야합니다 :

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

그리고 내 컨트롤러에서 이것은 의미 :

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

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

    return "contact";
}

어떻게하면 환영 파일이 항상 내 색인 매핑으로 이동하게되는데, 이는 contact.jsp로 연결됩니까?

이것이 혼란 스러웠다면 언제든지 질문하십시오.

해결법

  1. ==============================

    1.

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

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

    나를 위해 일했다.

  2. ==============================

    2.내 대답 참조 : https://stackoverflow.com/a/15551678/173149 또는

    내 대답 참조 : https://stackoverflow.com/a/15551678/173149 또는

    <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>
    
  3. ==============================

    3.Java 구성의 경우 WebMvcConfigurerAdapter를 확장하는 클래스의 두 메서드를 재정의 할 수 있습니다.

    Java 구성의 경우 WebMvcConfigurerAdapter를 확장하는 클래스의 두 메서드를 재정의 할 수 있습니다.

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

    index.html을 명시 적으로 제공하려면 리소스를 다음과 같은 클래스의 메서드보다 우선 적용해야합니다.

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

    물론 addResourceLocations는보기를 유지하기 위해 선택한 폴더를 따라야합니다.

    이 샘플보기

  4. ==============================

    4.사용 해보기

    사용 해보기

    <welcome-file-list>
      <welcome-file>/index</welcome-file>
    </welcome-file-list>
    
  5. from https://stackoverflow.com/questions/7415084/spring-welcome-file-list-correct-mapping by cc-by-sa and MIT license