本文主要是写Spring boot入门,调用jsp页面文件,在默认情况下,Spring boot是没有配置调用jsp文件,因此需要配置后,才能访问jsp文件。Spring boot入门虽然很简单,但是,运气不好也许需要花费很长时间。
1 在Eclipse中建立工程
1.1 选择Spring Starter Project工程
1.2 工程参数选择
如果是在STS的新版本中,只需要选择“Spring Web Starter”,没有“Aspects”的选项。
2 工程目录文件
3 程序文件配置
3.1 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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>1.5.21.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--jsp页面的jstl标签-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<scope>provided</scope>
</dependency>
<!--编译jsp-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.2 application.properties
server.port=8088
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
3.3 IndexController.java
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class IndexController {
@RequestMapping("/index")
public String index() {
System.out.print("!*********!");
return "index";
}
}
3.4 DemoApplication.java
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
4 运行结果
切换到DemoApplication.java文件中,点击右键,选择Run AsàSpring Boot App即可运行。
5 遇到的问题
注意:如果下面的方法不能解决问题,或者解决了一个问题,又出现了新问题,强烈建议更换STS的版本。因为本人就是受害者,在我的电脑上使用同样的代码,试过STS的3.9.5版本、3.8.3版本等都是出现一个又一个的问题,最后使用了STS的最新版本4.3.0才没有出错。有的时候,可能不是自己的原因,可能是电脑本身、软件本身、关联软件的原因等等。
5.1 问题:Circular view path [index]: would dispatch back to the current handler URL [/index] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)
解决方法:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
5.2 问题:Error resolving template [index], template might not exist or might not be accessible by any of the configured Template Resolvers
解决方法:
@RequestMapping( "/index")
@ResponseBody
5.3 问题:An error occurred while filtering resources(并且项目有红叉)
解决方法:
右键项目àmavenàupdate project
5.4 问题:java.util.zip.ZipException: invalid LOC header (bad signature)
解决方法:
删除pom.xml文件中的
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
但是,删除配置文件,就不能使用jsp网页文件了。
5.5 问题:Protocol handler start failed……,Address already in use: bind
解决方法:
Tomcat端口被占用,在配置文件application.properties中换端口。