2017-03-28 4 views
1

내 webapp 내에 두 html로 간단한 봄 부팅 응용 프로그램이 있습니다. 내 컨트롤러에서 enter image description here봄 부팅시 다중 index.html

내가 쓴 매핑 같은 :

@Controller 
public class HtmlController { 

@RequestMapping(value = "/", method = RequestMethod.GET) 
public String index() { 
    return "index"; 
} 

@RequestMapping(value = "/anotherIndex", method = RequestMethod.GET) 
public String anotherIndex() { 
    return "anotherIndex"; 
} 
} 

또한 내가 속성이 있습니다

spring.mvc.view.prefix=/ 
spring.mvc.view.suffix=.html 

내가 브라우저 로컬 호스트로 전달 : 8080/- 난 내 index.html을 얻을 페이지 하지만 localhost : 8080/anotherIndex를 전달할 때 예외가 있습니다.

javax.servlet.ServletException: Circular view path [/anotherIndex.html]: would dispatch back to the current handler URL [/anotherIndex.html] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.) 
at org.springframework.web.servlet.view.InternalResourceView.prepareForRendering(InternalResourceView.java:205) [spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:145) [spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303) [spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1282) [spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037) [spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980) [spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) [spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) [spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE] 
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) [spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE] 

내 코드에 어떤 문제가 있습니까?

+0

여러 오타가? 예외의 실제 경로를 살펴보십시오. Spring Security를 ​​설치했지만 로그인 페이지를 올바르게 처리하지 못하는 것 같습니다. – chrylis

+0

URL에 오타가 있습니다 (localhost : 8080/anoterIndex) h 편지를 놓친 경우 =) – dcalap

+0

죄송합니다. 더미 코드입니다. 나는 전혀 상황에 대해 물어 본다. – DamienMiheev

답변

1

스프링 부트의 웹 응용 프로그램에 정의 된 폴더 구조를 사용하지 않는 것이 가장 큰 문제점입니다.

당신은 당신의 컨트롤러 사용으로 인한 다음

src 
    main 
     resources 
       templates 
         index.html 
         anotherIndex.html 
         anotherFolder 
          index.html 
         ... 

을 가져야한다 (당신이 그것을 오른쪽)

@RequestMapping(value = "/", method = RequestMethod.GET) 
public String index() { 
    return "index"; 
} 

@RequestMapping(value = "/anotherIndex", method = RequestMethod.GET) 
public String anotherIndex() { 
    return "anotherIndex"; 
} 
+0

그래, 나는이 접근법에 대해 안다. 나는 접미어 "/"와 접두어 "/index.html"을 사용하는 다른 프로젝트에서 비슷합니다. 하지만 다른 해결책이 있습니까? 예를 들어 a.html과 b.html은 js와 css가 비슷하며 다른 폴더에 넣지 않습니다. – DamienMiheev

+0

템플릿과 동일한 레벨의 정적 폴더를 만들 수 있습니다. 일반적인 CSS와 js에서는 html 템플릿이 해당 파일을 참조하기 때문에 – cralfaro

관련 문제