百度有人说是因为pom.xml中缺少web的依赖,但是我pom.xml是有这个web的依赖的,而以前的话,这个项目是可以启动的,但现在却无法启动,只能是用war的方式部署到tomcat才行,可是我需要的是用main的方式一键启动。
然后突然想到了spring boot已经出到了2.0了,我想会不会是版本过老了,版本号是1.4.7;
我就只发成功的demo吧,有需要的可以参考一下,不当之处欢迎批评指点.
启动器:
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ApplicationTest { public static void main(String[] args) { SpringApplication.run(ApplicationTest.class, args); } }
application.properties:
spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp
controller:
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @RequestMapping("/jsp") @Controller public class JspTestController { @RequestMapping("/test") public ModelAndView test() { //视图需要根据application.properties中配置的路径下存在 ModelAndView mv = new ModelAndView("test"); mv.addObject("msg", "数据来自后台..."); return mv; } }
jsp(注意路径:WEB-INF/jsp/test.jsp):
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!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> ${msg } </body> </html>
pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <groupId>cn.itcast.springboot</groupId> <artifactId>spring-boot-04-view-jsp</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <!-- 配置jdk版本 --> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!-- web应用启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!-- servlet依赖. --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!-- 使用引导类启动时候也可以访问jsp视图;不然只能打出war部署到tomcat下才能访问 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> </dependencies> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/libs-snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> </project>