在SSM/H
的时代,前端主要用的是JSP,这就导致有很多缺点,就比如说很多标签库需要另外的导入,没有自带的解决方案,导入之后很多情况下也只会用一个标签库中的一两个标签这就造成了很多资源的冗余,无论是对整体项目的大小或者是前端加载资源的响应负担都是有影响的,所以到了spring boot时代,Spring boot不止更青睐于模块化开发,甚至官方在默认的内置web软件中就将JSP的引擎格除掉了,并在整体上支持了模板引擎的前端技术,例如vue、freemaker、thymeleaf等。
可是对于开发来说,为了不影响别人的使用,开发的原则之一是不做彻底删除操作,只做修改或者是禁用不推荐使用,而且并不是所有的公司都有这个财力和人力能将所有的页面全部切换成模板引擎,更不是有能力就愿意付出如此大的代价去进行技术迭代,因此,spring boot可以选装搭配JSP,下面给大家介绍如何操作。
我们先新建一个项目,同时也为大家解决一个常见的问题,很多时候突然springboot项目创建的工具就连接不到server网址了
国内用的idea是怎么回事大家都心知肚明,所以在创建项目的时候idea连接https://start.spring.io
常常连接不到出问题,这个时候你可以用浏览器打开它
打开之后和你在idea操作的一样,把该填的该选的都弄好,点击下面的GENERATE
你就会得到一个zip的压缩包
这就是项目包,把它解压出来,用idea打开就行。
下面我们用这个项目添加JSP开发支持,首先在项目代码资源目录下创建一个webapp
文件夹
然后进行如下的设置
上面这样操作完webapp的图标上就会多一个蓝点
之后在它下面创建一个JSP页面
如果你操作的时候没有JSP的选项,那应该是设置问题,一定要在Project Structure中指定webapp为 Web Resource Directory
随后在pom中添加如下依赖
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
在pom文件中的build
标签下添加如下配置,用于声明将webapp目录下的资源也要编译到包中,不然访问不到
<resources>
<resource>
<!--源文件位置-->
<directory>src/main/webapp</directory>
<!--指定编译到META-INF/resources,该目录定死的不要随便写-->
<targetPath>META-INF/resources</targetPath>
<!--指定要把哪些文件编译进去,**表示webapp目录及子目录,*.*表示所有文件-->
<includes>
<include>**/*.*</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
随后修改springboot的配置文件指定SpringMVC的视图解析器,不然也是访问不到的
#指定内嵌Tomcat端口号
server.port=91
#配置视图解析器
#其中:/ 表示目录为src/main/webapp , 注意/是在Web Resource Directory中怎么配置的就用什么
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
# 集成完毕之后,剩下的步骤和我们使用 Spring MVC 一样
随后我们写一个测试的Controller,跳转到之前创建的jsp页面
package com.wy.bootjsp.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @创建人 wangyang
* @创建时间 2022/10/4
* @描述
*/
@Controller
public class TestController {
@RequestMapping("getTest")
public String getTest(){
model.addAttribute("data","JSP整合");
return "test";
}
}
最后的最后,一定要改一个东西,点击idea启动类的配置
启动项目浏览器访问结果,我是在idea里面直接启动的,这里有个坑,见特别说明
一般情况下,正式开发不会遇到用JSP,都是前端模板引擎技术,不过大家自己写一些Demo或者有的人学习SSM开发习惯了才会用JSP,总之要知道怎么用,防止万一某一天用到了,你不会就显得很尴尬。
特别说明
在idea里面你像我上面的配置流程走完就可以了,如果你要将你的开发成果物打包正式使用你会发现运行启动程序后jsp就失效了!!!!!!想解决这个问题,一定要单独指定编译插件的版本为1.4.2.RELEASE
,这一点就没有那么多为什么了,纯属开发经验,大家以后如果遇到在idea里开发时能正常用,打包之后就用不了了,就可以改这个版本的编译器试一试
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
<configuration>
<mainClass>com.wy.bootjsp.BootJspApplication</mainClass>
</configuration>
</plugin>