SpringBoot集成JSP

本文详细介绍了如何在SpringBoot项目中集成JSP,尽管官方不推荐,但有时出于项目需求仍需使用。首先,创建webapp/WEB-INF/jsp目录并配置web.xml。接着,更新application.yml,添加必要依赖,创建Controller,通过Model解析视图。在JSP文件夹下创建ceshi.jsp和index.jsp。当遇到404错误时,解决IDEA编译器问题,只需在POM.xml中添加特定配置,重启项目即可解决问题。
摘要由CSDN通过智能技术生成

SpringBoot我就不介绍了,这里主要将SpringBoot集成JSP,首先我们要知道SpringBoot默认并不支持JSP,并且SpringBoot官方也不推荐使用JSP,不推荐的原因主要就是:

  1. JSP官方文档没有Thymeleaf好
  2. 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成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值