项目开发过程中需要用到Spring Boot + JSP,在搭建框架的时候也碰到了不少问题,所以在这里自己整理了一篇教程以及一些注意事项。
首先创建一个Spring Boot项目。为了方便,可以选择File——>New Project——>Spring Initializer,使用Spring Initializer从https://start.spring.io/创建Spring项目。选择Next。
输入项目信息,Next。
添加依赖。这里可以选择添加Web依赖,也可以不添加。其他的依赖可以根据需要添加,也可以在以后通过pom添加。
创建完成后得到的Spring Boot项目结构。DemoApplication是项目的启动类。
在main目录下新建webapp\WEB-INF\views目录,作为jsp页面文件的根目录。
选择File——>Project Structure——>Modules,对web模块进行设置,将资源目录的位置设置为刚刚新建的webapp目录。如果没有web模块,可以点击加号添加一个web模块,然后对其进行设置。
webapp目录就成为了我们页面资源的访问根目录。并且此时就可以直接通过右键直接新建jsp文件了。
在webapp\WEB-INF\views目录下新建一个hello.jsp页面。
hello.jsp文件内容。这里只是简单的在屏幕上显示一句“ Hello World!”。
打开resources目录下的application.properties设置文件,设置资源访问路径以及资源后缀。
此时我们的项目还需要添加一些依赖。在pom.xml文件中添加以下依赖:
<!--spring framework web依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--jstl标签依赖--> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!--用于编译jsp的依赖--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency>
接下来新建一个控制器来控制网站的访问入口。在启动类DemoApplication同一级的目录位置新建controller文件夹,在controller文件夹下新建控制类HomeController。控制类中的内容如下图所示。
编译运行程序,打开浏览器,根据controller中设置的拦截路径,在浏览器中输入http://localhost:8080/hello,可以看到我们的demo页面已经可以访问了。至此我们在Idea中成功搭建了最基本的Spring Boot + JSP的框架。
有几个需要注意的地方:
1、要注意控制类和启动类的位置关系,启动类所在的位置需要在目录最外侧,其余的子包或是类需要与启动类平行。例如controller包和DemoApplication类是平行的,不要建到com.example.demo包外。
2、有时候maven项目的资源文件的更新会有些问题,导致项目运行出错或是页面更新滞后等问题,这时右键选择maven——>reimport就行了。
3、试图解析器的设置,前缀的路径是:spring.mvc.view.prefix = /WEB-INF/views/
而不是: spring.mvc.view.prefix = /WEB-INF/views
注意最后还有一个“/”
4、编译运行时这里要选择最后一个选项,如果选了倒数第二个网站部署会出现问题。