DamienMiheev
DamienMiheev

Reputation: 1047

Multiple index.html in spring boot

I have simple spring boot application with two html inside my webapp. enter image description here

In my controller i have written mapping like:

@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";
}
}

Also i have properties:

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

When i pass in browser localhost:8080/ - i get my index.html page But when i pass localhost:8080/anotherIndex i have exception:

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]

What's wrong with my code?

Upvotes: 3

Views: 2799

Answers (1)

cralfaro
cralfaro

Reputation: 5948

The main problem its you are not using the folder structure defined for a web application in Spring Boot.

You should have

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

Then from your Controller use (You have it right)

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

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

Upvotes: 2

Related Questions