Issue
I'm trying to add a jsp page in my Spring Boot service. My problem is that every time I try to go to that page I have this:
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Tue Apr 21 23:16:00 EEST 2015 There was an unexpected error (type=Not Found, status=404). No message available
I have added the prefix and sufix into my application.properties:
spring.view.prefix: /WEB-INF/jsp/
spring.view.suffix: .jsp
This is my controller class:
@Controller
public class MarkerController {
@RequestMapping(value="/map")
public String trafficSpy() {
return "index";
}
}
My Application class:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
private static Logger logger = Logger.getLogger(Application.class.getName());
public static void main(String[] args) {
logger.info("SPRING VERSION: " + SpringVersion.getVersion());
SpringApplication.run(Application.class, args);
}
}
And the index.jsp:
<!DOCTYPE html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html lang="en">
<body>
<h1>Hello, World!!!</h1>
<p>JSTL URL: ${url}</p>
</body>
</html>
And this is the src file structure:
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── internetprogramming
│ │ │ └── myserver
│ │ │ └── server
│ │ │ ├── Application.java
│ │ │ ├── config
│ │ │ │ └── DatabaseConfig.java
│ │ │ ├── controller
│ │ │ │ └── MarkerController.java
│ │ │ ├── dao
│ │ │ │ ├── MarkerDaoImplementation.java
│ │ │ │ └── MarkerDaoInterface.java
│ │ │ ├── Marker.java
│ │ │ └── service
│ │ │ ├── MarkerServiceImplementation.java
│ │ │ └── MarkerServiceInterface.java
│ │ ├── resources
│ │ │ └── application.properties
│ │ └── webapp
│ │ └── WEB-INF
│ │ └── jsp
│ │ └── index.jsp
Solution
Ensure that you have jasper and jstl in the list of dependencies:
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
Here is a working starter project - https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-web-jsp
Answered By - Biju Kunjummen
Answer Checked By - Pedro (JavaFixing Volunteer)