SpringBoot集成JSP
SpringBoot我就不介绍了,这里主要将SpringBoot集成JSP,首先我们要知道SpringBoot默认并不支持JSP,并且SpringBoot官方也不推荐使用JSP,不推荐的原因主要就是:
- JSP官方文档没有Thymeleaf好
- Thymeleaf的开源项目还在不断更新,而JSP已经好几年没有实质性的进展了
我不管哪,Thymeleaf确实是好用,但有时改造项目或者开发项目难免要使用JSP,所以这里介绍一下如何使用JSP。
首先需要创建一个SpringBoot项目,这里不在介绍了,创建完成后的结构如下图所示
我们需要再main下面依次创建webapp/WEB-INF/jsp文件夹,然后按照下图操作
如过你这里没有web的话,点击+按钮选择"web",如果你这里有web的话设置后面的路径
web.xml要放到WEB-INF下面,然后点击ok,这是会在WEB-INF文件夹下自动创建一个web.xml文件,如下图
接下来配置application.yml文件,我喜欢.yml格式,有层次感
然后加入maven依赖
<!--JavaServer Pages Standard Tag Library,JSP标准标签库-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
</dependency>
<!--jstl标签依赖的jar包end-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!--内置tocat对Jsp支持的依赖,用于编译Jsp-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
然后新建一个controller
具体代码如下:
/**
* @ClassName TestController
* @Description TODO
* @Author 小欧
* @Date 2019/4/8 20:14
* @Version 1.0
**/
@Controller
@RequestMapping(value = "")
public class TestController {
@RequestMapping(value = "/ceshi")
public ModelAndView ceshi(ModelAndView model){
model.addObject("hello","HelloWorld!");
return model;
}
@RequestMapping(value = "/index")
public String index(Model model){
List<String> names = new ArrayList<>();
names.add("a");
names.add("b");
names.add("c");
model.addAttribute("names",names);
return "index";
}
}
这里写这两种方法主要是想演示这两种方法,我喜欢使用Model解析视图
然后再WEB-INF/jsp下面新建两个jsp文件如下
具体代码如下:
ceshi.jsp
<%--
Created by IntelliJ IDEA.
User: 小欧
Date: 2019/4/8
Time: 21:08
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${hello}
</body>
</html>
index.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: 小欧
Date: 2019/4/8
Time: 20:59
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<c:forEach items="${names}" var="name">
${name} <hr>
</c:forEach>
</body>
</html>
好了启动项目开始测试
怎么报404,不应该啊,你想了半天也没想明白,这里有个坑,IDEA编译器的问题,怎么解决呢?在IDEA上开发web项目时,如果正常情况下如果遇到404,找不到文件时,可以在POM.xml文件中的中加入以下内容:
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
<resource>
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
SpringBoot集成MyBatis:
<dependencies>
<!--加载mybatis整合springboot-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!--Mysql的jdbc驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
SpringBoot集成MyBatis自动生成代码插件:
<build>
<plugins>
<!--mybatis代码自动生成插件-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<!--打开文件的配置位置-->
<configurationFile>generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>
我的pom如下图所示:
然后我们重启一下再测试
好了,问题已经解决,SpringBoot集成JSP成功