问题: 我无法WEB-INF/jsp在Spring Boot Web MVC应用程序下看到自己的视图。
WEB-INF/jsp
我所做的:
这是我的JSP:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <ul> <%--@elvariable id="users" type="java.util.List"--%> <c:forEach items="${utenti}" var="utente"> <li> <c:out value="${utente.getUsername()}"/> </li> </c:forEach> </ul> </body> </html>
这是我的控制器:
@Controller public class UtenteController { @Autowired private UtenteService utenteService; @RequestMapping("/lista_utenti") public ModelAndView getListaUtentiView(){ ModelMap model = new ModelMap(); model.addAttribute("utenti", this.utenteService.getListaUtenti()); return new ModelAndView("lista_utenti", model); } }
这是我的application.properties:
# MVC spring.view.prefix=/WEB-INF/jsp/ spring.view.suffix=.jsp #Postgres config spring.datasource.driverClassName=org.postgresql.Driver spring.datasource.url=jdbc:postgresql://localhost:5432/DB_Test spring.datasource.username=postgres spring.datasource.password=postgres
至少我的主要应用是:
@Configuration @EnableAutoConfiguration @ComponentScan public class SpringWebApplication extends SpringBootServletInitializer{ public static void main(String[] args) { SpringApplication.run(SpringWebApplication.class, args); } @Override protected final SpringApplicationBuilder configure(final SpringApplicationBuilder application) { return application.sources(SpringWebApplication.class); } }
如果去,我会得到http://localhost:8080/lista_utenti:
http://localhost:8080/lista_utenti
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Thu Jan 15 15:59:57 CET 2015 There was an unexpected error (type=Not Found, status=404). No message available
我究竟做错了什么?
Zio,您确定您已将此pom依赖项包括在内吗?
<dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency>
没有这个,我会遇到同样的错误。